第11章 分布式网络爬虫Scrapy-Redis.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第11章 分布式网络爬虫Scrapy-Redis;学习目标/Target;章节概述/ Summary;目录/Contents;目录/Contents;分布式爬虫简介;;Scrapy框架是一个通用的网络爬虫框架,应用极其广泛,但Scrapy框架本身并不支持分布式部署 ,也就是说无法在多台计算机中同时执行网络爬虫程序,导致采集数据的效率受到限制。为了提升网络爬虫的采集效率,Scrapy-Redis在Scrapy的基础上增加了一些以Redis数据库为基础的组件,通过这些组件可以让Scrapy框架实现分布式网络爬虫的功能。;分布式网络爬虫可以理解为集群爬虫,每个网络爬虫会从互联???上抓取网页数据,并将解析后提取的目标数据保存到文件或数据库中。分布式网络爬虫的设计重点在于多台计算机中的网络爬虫如何进行通信,按不同的通信方式可以分为3种模式,分别是主从模式、自治模式与混合模式。;11.1 分布式网络爬虫简介;11.1 分布式网络爬虫简介;11.1 分布式网络爬虫简介;11.1 分布式网络爬虫简介;11.1 分布式网络爬虫简介;11.1 分布式网络爬虫简介;Scrapy-Redis架构;;11.2 Scrapy-Redis架构;11.2 Scrapy-Redis架构;11.2 Scrapy-Redis架构;;;;;Scrapy-Redis运作流程;;(1)Scrapy Engine从Spiders中获取初始URL。 (2)Scrapy Engine将初始URL封装成请求,并将该请求交给Scheduler。 (3)Scheduler访问Redis数据库对请求进行判重,如果该请求不是重复的,就将该请求添加到Redis数据库中。 (4)当调度条件满足时,Scheduler会从Redis数据库中取出Request交给Scrapy Engine,Scrapy Engine将这个Request通过Downloader Middlewares转交给Downloader。 (5)一旦页面下载完毕,Downloader会将服务器返回的响应通过Downloader Middlewares交给Scrapy Engine。 (6)Scrapy Engine通过Spider Middlewares发送给Spiders进行处理。 (7)Spiders处理响应,并返回采集到的Item数据以及新Request交给Scrapy Engine。 (8)Scrapy Engine将爬取到的Item数据通过Item Pipeline交给Redis数据库,将Request给Scheduler。 (9)从第2步开始重复,直到Scheduler中没有更多的Request为止。;Scrapy-Redis开发准备;;安装Scrapy-Redis的方式非常简单,可以直接通过pip工具安装Scrapy-Redis库。;;11.4.2 修改配置文件;11.4.2 修改配置文件;;11.4.3 测试远程连接;11.4.3 测试远程连接;11.4.3 测试远程连接;11.4.3 测试远程连接;11.4.3 测试远程连接;多学一招;Scrapy-Redis的基本操作;Scrapy-Redis可以看作Scrapy框架的插件,它里面重新实现了Scrapy框架中部分组件的功能,使Scrapy框架支持开发分布式网络爬虫。因此,可以先创建一个Scrapy项目,然后在Scrapy项目中增加Scrapy-Redis的相关配置,并使用替换的组件进行开发。;;打开命令行窗口,先切换当前工作路径为项目要存放的目录,再输入创建Scrapy项目的命令,具体命令如下。;11.5.1 新建Scrapy-Redis项目;11.5.1 新建Scrapy-Redis项目;11.5.1 新建Scrapy-Redis项目;;11.5.2 明确采集目标;;Scrapy-Redis的scrapy_redis.spiders模块中定义了两个代表爬虫的类:RedisSpider和RedisCrawlSpider,其中RedisSpider是Spider的派生类,RedisCrawlSpider是CrawlSpider类的派生类,这两个类默认已经拥有了父类中的成员,此外也定义了自己的属性,如redis_key和allowed_domains属性。;;;11.5.3 制作爬虫;11.5.3 制作爬虫;;11.5.4 运行爬虫;11.5.4 运行爬虫;(4)使用lpush命令发布指令到Slave端。lpush命令有着固定的格式,具体如下。;;在Scrapy-Redis项目中,同样也可以定义多个管道,并让这些管道按照一定的顺序依次处理Item数据。;每个管道都是一个独立的Python类,并在该类中必须实现process_item()方法。例如,定义3

文档评论(0)

扬州牧 + 关注
实名认证
文档贡献者

资料收集自互联网,若有侵权请联系删除,谢谢~

版权声明书
用户编号:8036120077000004

1亿VIP精品文档

相关文档