【Python爬虫】Scrapy框架的核心架构和执行流程

原文来源(侵删):

     https://blog.csdn.net/qq_35187510/article/details/80006208

首先,要搞清楚Scrapy的架构就必须明白Scrapy中的组件以及各个组件的作用。接下来,我们看一看Scrapy框架的组件有哪些以及它们的作用。

  (1)Scrapy引擎:引擎是Scrapy架构的核心,负责数据和信号在组件间的传递。

  (2)调度器:存储带爬取的网址,并确定网址的优先级,决定下一次爬取的网址。

  (3)下载中间件:对引擎和下载器之间的通信进行处理(如设置代理、请求头等)。

  (4)下载器:对相应的网址进行高速下载,将互联网的响应返回给引擎,再由引擎传递给爬虫处理。

  (5)爬虫中间件:对引擎和爬虫之间的通信进行处理。

  (6)爬虫:对响应response进行处理,提取出所需的数据(可以存入items),也可以提取出接下来要爬取的网址。

  (7)实体管道:接收从爬虫中提取出来的item,并对item进行处理(清洗、验证、存储到数据库等)。

Scrapy框架组件的执行流程

  1、首先Spiders(爬虫)将需要发送请求的url(requests)经ScrapyEngine(引擎)交给Scheduler(调度器)。

  2、Scheduler(排序,入队)处理后,经ScrapyEngine,DownloaderMiddlewares(可选,主要有User_Agent, Proxy代理)交给Downloader。

  3、Downloader向互联网发送请求,并接收下载响应(response)。将响应(response)经ScrapyEngine,SpiderMiddlewares(可选)交给Spiders。

  4、Spiders处理response,提取数据并将数据经ScrapyEngine交给ItemPipeline保存(可以是本地,可以是数据库)。提取url重新经ScrapyEngine交给Scheduler进行下一个    循环。直到无Url请求程序停止结束。

猜你喜欢

转载自blog.csdn.net/bmx_rikes/article/details/82470492
今日推荐