- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Python爬⾍框架Scrapy⼊门
Python爬⾍框架 Scrapy⼊门
⼀、爬⾍定义
⽹络爬⾍(Web crawler),是⼀种按照⼀定的规则,⾃动地抓取万维⽹信息的程序或者脚本,它们被⼴泛⽤于互联⽹搜索引擎或其他类似
⽹站,可以⾃动采集所有其能够访问到的页⾯,以获取这些⽹站的内容。
从功能上来讲,爬⾍⼀般分为数据采集,处理,储存三个部分。传统爬⾍从⼀个或若⼲初始⽹页的URL开始,获得初始⽹页上的URL,在抓
取⽹页的过程中,不断从当前页⾯上抽取新的URL放⼊队列,直到满⾜系统的⼀定停⽌条件。
⼆、所需知识
需要的知识有:linux系统 + Python语⾔ +Scrapy框架 + XPath(XML路径语⾔) + ⼀些辅助⼯具 (浏览器的开发者⼯具和XPath
helper插件)。
我们的爬⾍是使⽤Python语⾔的Scrapy爬⾍框架开发,在linux上运⾏,所以需要熟练掌握Python语⾔和Scrapy框架以及linux操作系统
的基本知识。
我们需要使⽤XPath从 ⽬标HTML页⾯中提取我们想要的东西,包括汉语⽂字段落和“下⼀页”的链接等。
浏览器的开发者⼯具是编写爬⾍主要使⽤的辅助⼯具。使⽤该⼯具可以分析页⾯链接的规律,可以⽤来定位HTML页⾯中想要提取的元素,
然后提取其XPath表达式⽤于爬⾍代码中,还可以查看页⾯请求头的Referer、Cookie等信息。如果爬取的 ⽬标是动态⽹站,该⼯具还可以
分析出背后的JavaScript请求。
XPath helper插件是chrome的⼀个插件,基于chrome核的浏览器也可以安装。XPath helper可以⽤来调试XPath表达式。
三、环境搭建
安装Scrapy可以使⽤pip命令 :pip install Scrapy
Scrapy相关依赖较多,因此在安装过程中可能遇到如下问题 :
ImportError: No module named w3lib.http
解决 :pip install w3lib
ImportError: No module named twisted
解决 :pip install twisted
ImportError: No module named lxml.HTML
解决 :pip install lxml
error: libxml/xmlversion.h: No such file or directory
解决 :apt-get install libxml2-dev libxslt-dev
apt-get install Python-lxml
ImportError: No module named cssselect
解决 :pip install cssselect
ImportError: No module named OpenSSL
解决:pip install pyOpenSSL
或者使⽤简单的⽅法:使⽤anaconda安装。
四、Scrapy框架
1. Scrapy简介
Scrapy是⼤名⿍⿍的爬⾍框架,是使⽤Python编写的。Scrapy可以很⽅便的进⾏web抓取,并且也可以很⽅便的根据⾃⼰的需求进⾏定
制。
Scrapy整体架构⼤致如下:
2. Scrapy组件
Scrapy主要包括了以下组件:
引擎(Scrapy)
⽤来处理整个系统的数据流,触发事务(框架核⼼)。
调度器(Scheduler)
⽤来接受引擎发过来的请求,压⼊队列中, 并在引擎再次请求的时候返回. 可以想像成⼀个URL(抓取⽹页的⽹址或者说是链接)的优先队列,
由它来决定下⼀个要抓取的⽹址是什么, 同时去除重复的⽹址。
下载器(Downloader)
⽤于下载⽹页内容, 并将⽹页内容返回给蜘蛛(Scrapy下载器是建⽴在twisted这个⾼效的异步模型上的) 。
爬⾍(Spiders)
爬⾍是主要⼲活的, ⽤于从特定的⽹页中提取⾃⼰需要的信息, 即所谓的实体(Item)。⽤户也可以从中提取出链接,让Scrapy继续抓取下⼀个
页⾯。
项⽬管道(Pipeline)
负责处理爬⾍从⽹页中抽取的实体,主要的功能是持久化实体、验证实体的有效性、清除不需要的信息。当页⾯被爬⾍解析后,将被发送到
项⽬管道,并经过⼏个特定的次序处理数据。
下载器中间件(Downloader Middlewares)
位于S
文档评论(0)