1. Scrapy旧版架构图(绿线是数据流向)
Spiders(爬虫):负责处理所有Responses,从中分析提取数据,获取Items字段需要的数据,并将需要跟进的URL提交给引擎,再次进入Scheduler(调度器)。
Engine(引擎):负责Spider、Item Pipeline、Downloader、Scheduler中间的通讯、信号以及数据传递等。
Scheduler(调度器):负责接受引擎发送过来的Request请求,并按照一定的方式进行整理排列和入队,当引擎需要时,交还给引擎。
Downloader(下载器):负责下载引擎发送的所有Requests请求,并将其获取到的Responses交还给引擎,由引擎交给Spider来处理。
Item Pipeline(管道):负责处理Spider中获取到的Items,并进行后期处理(如详细分析、过滤、存储等)。
Downloader Middlewares(下载中间件):一个可以自定义下载功能的组件。
Spider Middlewares(Spider中间件):一个可以自定义引擎和Spider交互的组件。
通信的功能组件:如进入Spider的Responses和从Spider出去的Requests。
2. Scrapy新版架构图
1. 组件介绍
Scrapy Engine(引擎):引擎负责控制数据流在所有组件中的流动,并在相应动作发生时触发事件。
Scheduler(调度器)