Scrapy框架架构详解【python爬虫入门进阶】(23)

您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦
1. 社区逛一逛,周周有福利,周周有惊喜。码农飞哥社区,飞跃计划
2. Python基础专栏,基础知识一网打尽,9.9元买不了吃亏,买不了上当。 Python从入门到精通
❤️ 3. Python爬虫专栏,系统性的学习爬虫的知识点。9.9元买不了吃亏,买不了上当,持续更新中 。python爬虫入门进阶
❤️ 4. Ceph实战,从原理到实战应有尽有。 Ceph实战
❤️ 5. Java高并发编程入门,打卡学习Java高并发。 Java高并发编程入门
关注下方公众号,众多福利免费嫖;加我VX进群学习,学习的路上不孤单
Scrapy框架架构详解【python爬虫入门进阶】(23)_第1张图片

前言

本文将对Scrapy框架架构进行详细说明

Scrapy框架的架构图

如下图所示展示了Scrapy框架的架构。从下图可以看出Scrapy框架中数据流的执行步骤。
Scrapy框架架构详解【python爬虫入门进阶】(23)_第2张图片
数据流(Data Flow)通过引擎来控制,一个完整的数据流会经过如下几个步骤来流动:

  1. 第一步:爬虫(SPIDERS)发送给引擎(ENGINE)一个最初的请求(REQUESTS);
  2. 第二步:引擎在调度器(SCHEDULER)中安排当前请求,调度器接收到url之后生成一个REQUEST对象,并存储到队列当中;
  3. 第三步:调度程序给引擎返回一个请求(当前请求的REQUEST对象)
  4. 第四步:引擎通过下载中间件将请求发送给下载器(DOWNLOADER)
  5. 第五步:一旦完成了页面的下载,下载器就生成了一个响应(关于这个页面)并将响应的数据通过下载中间件发送给引擎;
  6. 第六步:引擎接收到下载器的响应并将响应通过爬虫中间件发送给爬虫(SPIDER)
  7. 第七步:爬虫处理响应并通过爬虫中间件返回处理好之后的数据并伴随一个新的请求给引擎,返回item或者字典;
  8. 第八步:引擎发送加工项目给数据永久化(ITEM PIPELINES)进行数据的保存,然后将处理过得请求发送给调度程序,并询问是否有下一个请求;
  9. 第九步:这个过程从步骤1开始重复到调度器程序没有请求为止。

组件介绍:

Engine:引擎—负责控制系统所有组件之间的数据流,和当某些事情发生时触发相应的事件;
Scheduler:调度器—负责接收引擎的请求并将这些请求加入队列(来一个url就产生一个request放在队列当中),以便在之后(也包括引擎)进行输出;(多个url以什么样的顺序爬取,如果碰到重复爬取的url该如何处理)
Downloader: 下载器—负责抓取网页和将抓取到的数据发送给引擎,然后通过引擎发送给爬虫(Spiders);
Spiders: 爬虫—用于下载数据的处理加工,我们自己写的爬虫,(就是怎么解析数据都是在Spiders中完成的)。
Item Pipeline: 管道—数据相关的一个组件,主要负责数据的存储;
Downloader middlewares: 用于引擎和下载器之间的信息传递;
Spider middlewares:用于引擎和爬虫之间的信息传递;

粉丝专属福利

软考资料:实用软考资料

面试题:5G 的Java面试题

学习资料:50G的各类学习资料

脱单秘籍:回复【脱单】

并发编程:回复【并发编程】

											            验证码 可通过搜索下方 公众号 获取 

你可能感兴趣的:(笔记,python,爬虫,架构)