首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python爬取同样的网页,bs4和xpath抓到的结果不同?

大家好,我是Python进阶者。 一、前言 前几天在Python白银交流群【沐子山树】问了一个Python网络爬虫的问题,问题如下:刚好遇到另外一个问题,请教下大佬。...就是我爬取同样的网页,用xpath的时候会将图上这样的script标签里面的内容当成text取出来,但是用BS4就不会。导致两种方法取出来的text不一样。这种情况应该如何处理?...我可能想问的是: 1.存在这种差异是对的吗?确认不是我代码写错了? 2.纯技术上,如果Xpath的结果想去掉这段,bs4的结果想有这段应该如何处理?...json是相对而言最简单的,但json在静态网页上用不上。 顺利地解决了粉丝的疑问。 如果你也有类似这种Python相关的小问题,欢迎随时来交流群学习交流哦,有问必答!...三、总结 大家好,我是Python进阶者。这篇文章主要盘点了一个Python正则表达式的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

12210

爬虫 | Scrapy实战腾讯招聘

前言 这个文章的技术含量并不高,旨在练习scrapy框架的基本用法,熟悉框架下各个文件的作用。 先上一波爬取结果: ? 日志部分截图 ?...:Python | Python学习之初识Scrapy 创建项目 #有虚拟环境的可以先切换到对应的虚拟环境下 #创建scrapy项目 scrapy startproject hrspider #创建scrapy...同一项目中有多个爬虫 数据需要进行不同的处理 在scrapy项目中如何构造请求?...能明确爬取内容,需要爬取的字段清晰明了。 避免出现变量名写错的低级错误 如何使用scrapy shell?...#切换到项目目录下 scrapy shell [url地址] #默认进入python交互环境,安装Ipython的情况下默认进入Ipython #可以在命令行环境下测试xpath的有效性 response.xpath

1.1K60
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    爬虫框架Scrapy的第一个爬虫示例入门教程

    2.明确目标(Item) 在Scrapy中,items是用来加载抓取内容的容器,有点像Python中的Dic,也就是字典,但是提供了一些额外的保护减少错误。...要建立一个Spider,你必须用scrapy.spider.BaseSpider创建一个子类,并确定三个强制的属性: name:爬虫的识别名称,必须是唯一的,在不同的爬虫中你必须定义不同的名字。...应该是出了编码问题,谷歌了一下找到了解决方案: 在python的Lib\site-packages文件夹下新建一个sitecustomize.py: 再次运行,OK,问题解决了,看一下结果: 最后一句INFO...在parse 方法的作用下,两个文件被创建:分别是 Books 和 Resources,这两个文件中有URL的页面内容。 那么在刚刚的电闪雷鸣之中到底发生了什么呢?...我们来试着输入一下命令运行爬虫(在tutorial根目录里面): scrapy crawl dmoz 运行结果如下: 果然,成功的抓到了所有的标题。

    1.2K80

    scrapy(2)——scrapy爬取新浪微博(单机版)

    Books 和 Resources,这两个文件中有URL的页面内容(f.write(response.body))。...在运行完上述指令之后,在pars()方法的作用下,两个文件被创建(filename = response.url.split("/")[-2]):分别是 Books 和 Resources,这两个文件中有...在使用XPath的时候,scrapy中有两种类可供选择,第一种是HtmlXPathSelector(HTML数据解析),第二种是XmlPathSelector(XML数据解析)。...Scrapy使用了一种基于 XPath 和 CSS 表达式机制: Scrapy Selectors。 为了介绍Selector的使用方法,接下来我们将要使用内置的 Scrapy shell 。...图2-9 启动shell 如果启动失败,可以尝试加上双引号,即 scrapy shell “http://www.dmoz.org/Computers/Programming/Languages/Python

    2.4K150

    Python爬虫从入门到放弃(十三)之 Scrapy框架的命令行详解

    shell fetch view version 项目命令有: crawl check list edit parse bench startproject 这个命令没什么过多的用法,就是在创建爬虫项目的时候用...genspider 用于生成爬虫,这里scrapy提供给我们不同的几种模板生成spider,默认用的是basic,我们可以通过命令查看所有的模板 localhost:test1 zhaofan$ scrapy...crawl 爬虫名字 这里需要注意这里的爬虫名字和通过scrapy genspider 生成爬虫的名字是一致的 check 用于检查代码是否有错误,scrapy check list scrapy list...shell url地址进入交互模式 这里我么可以通过css选择器以及xpath选择器获取我们想要的内容(xpath以及css选择的用法会在下个文章中详细说明),例如我们通过scrapy shell http...settings --get=MYSQL_HOST 192.168.1.18 localhost:jobboleSpider zhaofan$ runspider 这个和通过crawl启动爬虫不同,

    1.1K50

    Learning Scrapy(一)

    新特性越来越多且质量稳定   通过观察Scrapy的新闻发布页(http://doc.Scrapy.org/en/latest/news.html),就可以看到在增加的新特性和bug修正。...scrapy shell(scrapy终端)是一个交互式的终端,在未启动spider的情况下尝试及调试爬取代码,主要测试Xpath和CSS表达式等,查看他们的工作方式以及从爬取的网页中提取数据,该终端在开发和调试...The Request and The Response(请求和响应) 在上面使用scrapy shell就会发现,只要我们输入一个URL,它就可以自动发送一个GET请求并返回结果。...定义item   爬虫之前,一定是要知道你需要爬取到什么内容,在items.py中定义抓取,在该文件中定义的item并不是一定要在每一个spider中填充,也不是全部同时使用,因为item中的字段可以在不同的...spider文件中使用,也可以在一个spider文件的不同地方使用,你只需要在此定义你需要用到的字段,定义之后在任何时候都可以使用。

    73320

    Scrapy1.4最新官方文档总结 3 命令行工具配置设置使用 scrapy 工具创建项目管理项目Scrapy 的可用命令parse

    shell) 使用 scrapy 工具 在没有参数的情况下直接运行 scrapy 命令将得到一些使用帮助和可用的命令,如下所示: ?...用来查看爬虫所“看到”的样子是否是你所期望的,因为两者有可能不同。...支持 UNIX 风格的本地文件路径,包括相对路径(./ 或 ../)和绝对路径。请参阅 Scrapy shell 了解更多信息。...支持的选项: --spider = SPIDER:强制使用给定的爬虫 -c code:在 shell 中执行代码,打印结果并退出 --no-redirect:禁用 HTTP 3xx 重定向(默认启用...使用 -v 时还会打印出 Python,Twisted 和 Platform 的信息,这对错误报告很有用。

    1.2K70

    Scrapy入门到放弃02:了解整体架构,开发一个程序

    准备工作 安装Scrapy Scrapy的安装和普通模块相同: pip3 install scrapy 安装之后,就会多出一个scrapy命令,我们可以使用此命令来新建项目、新建爬虫程序、进入shell...命令说明如下图: scrapy 新建项目 和普通python项目不同的是,Scrapy需要使用命令行新建项目,然后再导入IDE进行开发。...修改后的程序输出结果和之前相同。 Request 我们使用yield Request发起一个请求,为什么不用return?因为yield不会立即返回,不会终结方法。...如果我们在start_urls写入两条一样的url时,只会输出一次结果,如果我们修改为True,则输出两次。...IDE启动 我们在开发过程中通常使用第二种启动方式,这也是符合我们常规启动程序的方式。新建一个python程序,引入命令行工具执行爬虫启动命令。

    60110

    使用Scrapy框架爬取土巴兔

    2.Scrapy的三个中间件起到串联各个模块的作用: 下载器中间件(Downloader Middlewares):位于Scrapy引擎和下载器之间的中间件,在Scrapy引擎和下载器中间负责传递下载内容的请求和数据...使用可读性较好的xpath代替正则处理html解析 支持shell方便调试 高扩展,低耦合,方便定制功能 编码自动检测以及健壮的编码支持 有强大的统计功能和log系统 支持多URL异步请求 二.开发环境的搭建...1.安装python环境 目前Scrapy同时支持python2.7版本和python3.3以上,所以可以根据自己需要选择不同的Python版本。...Github中有下载地址和安装教程https://github.com/ServiceStack/redis-windows。...Python爬虫实战-使用Scrapy框架爬取土巴兔(二) 附: 详细的项目工程在Github中,如果觉得还不错的话记得Star哦。

    55840

    Scrapy爬取数据初识

    ,并传送给引擎,之后抓取结果将传给spider Spiders: 用户编写的可定制化的部分,负责解析response,产生items和URL。...spider pycharm 调试scrapy 建立一个main.py文件,在book文件目录下,保证main.py和自动生成的scrapy.cfg在同一层,写入下面代码。...首先您需要进入项目的根目录,执行下列命令来启动shell:scrapy shell "http://www.dmoz.org/Computers/Programming/Languages/Python...image.png 定义Item Item 是保存爬取到的数据的容器;其使用方法和python字典类似, 并且提供了额外保护机制来避免拼写错误导致的未定义字段错误。...解决方案:pip install service_identity --force --upgrade csv文件输出空一行 在python中的Lib\site-packages\scrapy,编辑该路径下的

    1.7K60

    《Learning Scrapy》(中文版)第5章 快速构建爬虫一个具有登录功能的爬虫使用JSON APIs和AJAX页面的爬虫在响应间传递参数一个加速30倍的项目爬虫可以抓取Excel文件的爬虫总结

    或者,如果你使用scrapy shell或在Chrome中右键点击查看网页源代码(3,4),你会看到这个网页的HTML代码不包含任何和值有关的信息。数据都是从何而来呢? ?...最后的结果是可用的URL。和第3章中的yield一样,我们用URL做一个新的Request请求。...让我们在Scrapy shell中加载索引首页,并用XPath处理: $ scrapy shell http://web:9312/properties/index_00000.html While within...提示:碰巧的是,在我们的例子中,XPath表达式在索引页和介绍页中是相同的。不同的时候,你需要按照索引页修改XPath表达式。...中有csv文件的内建库。

    4K80

    使用Scrapy从HTML标签中提取数据

    安装Python 3环境 在包括Debian 9和CentOS 7的大多数系统上,默认的Python版本是2.7,并且需要手动安装pip包安装管理工具。...: python --version 安装Scrapy 系统级别下安装(不推荐) 虽然系统级别下的安装是最简单的方法,但可能其会与其他需要不同版本库的Python脚本冲突。...要检索链接内所有图像的资源地址,请使用: response.xpath("//a/img/@src") 您可以尝试使用交互式的Scrapy shell: 在您的网页上运行Scrapy shell: scrapy...其输出结果将显示链接到下载页面的页面以及链接的文本信息。 设置需处理的HTTP状态 默认情况下,Scrapy爬虫仅解析请求成功的HTTP请求;,在解析过程中需要排除所有错误。...在HTTP重定向的情况下,实际URL可能与起始URL不同。

    10.2K20

    (原创)七夜在线音乐台开发 第三弹 爬虫篇

    crapy,是Python开发的一个快速,高层次的爬虫框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。...Scrapy使用了一种基于 XPath 和 CSS 表达式机制: Scrapy Selectors。 关于selector和其他提取机制的信息请参考 Selector文档 。...在Shell中尝试Selector选择器   为了介绍Selector的使用方法,接下来我们将要使用内置的 Scrapy shell 。...Scrapy Shell需要您预装好IPython (一个扩展的Python终端)。...详情请参考 使用Firebug进行爬取 和 借助Firefox来爬取 。 在查看了网页的源码后,您会发现网站的信息是被包含在 第二个 元素中。

    1.1K31

    Python:os.path.join()产生的斜杠在Windows和Linux下的不同表现和解决方法

    是隔离了操作系统的差异,同样的function在不同操作系统下会有一致的结果,直到前几天临时切换到Windows下发现有些Python代码跑不出来,才发现如os.path.join()这样的方法在不同操作系统下的表现是不一致的...在os.path的官方文档页面11.2. os.path — Common pathname manipulations — Python 3.7.0 documentation开始位置就提到源代码文件根据不同操作系统在三个不同文件中...Python时就会根据不同操作系统,仅使用对应操作系统类别的os.path模块。...如果顺着源码去看,就会发现os.path.join()在Linux下是以斜杠(/)作为分隔符的,而在Windows下则是以反斜杠(\)作为分隔符的。...3.4开始可以通过pathlib.PurePath.as_posix()来生成斜杠(/)格式的路径,其实其实现原理和str.replace()并没有太大区别。

    3.7K20

    独家 | 教你用Scrapy建立你自己的数据集(附视频)

    入门(先决条件) 如果您已经拥有anaconda和谷歌Chrome(或Firefox),请跳到创建新的Scrapy项目。 1. 在您的操作系统上安装Anaconda(Python)。...被框住的部分是我们将单独拎出来的部分网址 在终端(mac / linux)中输入: scrapy shell ‘https://fundrazr.com/find?...退出scrapy shell: exit() ITEMS 爬取的主要目标是从非结构化数据源(通常是网页)中提取结构化数据。 Scrapy爬虫可以将提取的数据以Python dicts的形式返回。...虽然非常方便,操作也很熟悉,但是Python dicts本身缺少结构化:容易造成字段名称中的输入错误或返回不一致的数据,特别是在具有许多爬虫的较大项目中(这一段几乎是直接从scrapy官方文档复制过来的...数据输出位置 我们的数据 本教程中输出的数据大致如下图所示。 随着网站不断更新,爬取出来的个别筹款活动将会有所不同。 此外,在excel读取csv文件的过程中,不同的活动数据间可能会出现空格。

    1.9K80

    网络爬虫暗藏杀机:在Scrapy中利用Telnet服务LPE

    0x00 前言 网络抓取框架中使用最多的莫过于是scrapy,然而我们是否考虑过这个框架是否存在漏洞妮?5年前曾经在scrapy中爆出过XXE漏洞,然而这次我们发现的漏洞是一个LPE。...通过该漏洞可以获得shell,本文中暴露的漏洞会产生影响scrapy低于1.5.2的版本。...然后再运行的时候我们可以看到会启动的扩展和一些选项信息,我们可以清楚的看到默认它会启动telnet服务。 ? 然后这个telnet会监听本地的6023端口。...先使用nc -lvp 4444 监听4444端口; 运行指令:scrapy runspider telnet_test.py; 然后运行的时候 python3 exp.py; 然后获取反弹shell(发现是...0x03总结 信息安全的本质是信任问题,当我们使用了框架就代表我们信任了这个框架,如果框架的安全性不对其进行检测,那么所带来的是毁灭性的结果。

    64620

    《Learning Scrapy》(中文版)第3章 爬虫基础

    当你看到: >>> print 'hi' hi 是让你在Python或Scrapy界面进行输入(忽略>>>)。同样的,第二行是输出结果。 你还需要对文件进行编辑。编辑工具取决于你的电脑环境。...一个Scrapy项目 目前为止,我们只是在Scrapy shell中进行操作。学过前面的知识,现在开始一个Scrapy项目,Ctrl+D退出Scrapy shell。...Scrapy shell只是操作网页、XPath表达式和Scrapy对象的工具,不要在上面浪费太多,因为只要一退出,写过的代码就会消失。...通过self,可以使用爬虫一些有趣的功能。response看起来很熟悉,它就是我们在Scrapy shell中见到的响应。 下面来开始编辑这个爬虫。...这很好,因为Scrapy就是围绕Items的概念构建的,这意味着我们可以用pipelines填充丰富项目,或是用“Feed export”导出保存到不同的格式和位置。

    3.2K60

    如何抓取汽车之家的车型库

    在抓取汽车之家的车型库之前,我们应该对其结构有一个大致的了解,按照百科中的描述,其大致分为四个级别,分别是品牌、厂商、车系、车型。本文主要关注车系和车型两个级别的数据。...在抓取前我们要确定从哪个页面开始抓取,比较好的选择有两个,分别是产品库和品牌找车,选择哪个都可以,本文选择的是品牌找车,不过因为品牌找车页面使用了 js 来按字母来加载数据,所以直接使用它的话可能会有点不必要的麻烦...假设你已经有了 Scrapy 的运行环境(注:本文代码以 Python3 版本为准): shell> scrapy startproject autohome shell> cd autohome shell...,下面我们就可以让蜘蛛爬起来了: shell> scrapy crawl automobile -o autohome.csv 抓取的结果会保存到 autohome.csv 里。...如果你完整读过 Scrapy 的文档,那么可能会记得在 spiders 一章中有如下描述: When writing crawl spider rules, avoid using parse as callback

    1.6K30
    领券