一:Scrapy框架的核心架构
首先,要搞清楚Scrapy的架构就必须明白Scrapy中的组件以及各个组件的作用。接下来,我们看一看Scrapy框架的组件有哪些以及它们的作用。
(1)Scrapy引擎:引擎是Scrapy架构的核心,负责数据和信号在组件间的传递。
(2)调度器:存储带爬取的网址,并确定网址的优先级,决定下一次爬取的网址。
(3)下载中间件:对引擎和下载器之间的通信进行处理(如设置代理、请求头等)。
(4)下载器:对相应的网址进行高速下载,将互联网的响应返回给引擎,再由引擎传递给爬虫处理。
(5)爬虫中间件:对引擎和爬虫之间的通信进行处理。
(6)爬虫:对响应response进行处理,提取出所需的数据(可以存入items),也可以提取出接下来要爬取的网址。
(7)实体管道:接收从爬虫中提取出来的item,并对item进行处理(清洗、验证、存储到数据库等)。
如下图所示:
二:Scrapy框架组件的执行流程
1、首先Spiders(爬虫)将需要发送请求的url(requests)经ScrapyEngine(引擎)交给Scheduler(调度器&