一、爬虫框架Scrapy总览

图片来源于网络
上图就是整个Scrapy的架构图了,主要包括部分作用如下:
- Scrapy Engine:爬虫引擎,负责制数据流在系统中所有组件中流动,并在相应动作发生时触发事件。简单来说,就是负责Spiders、ItemPipeline、Downloaders和Scheduler之间的信息传递。
- Scheduler:调度器,负责接受引擎发送过来的requests请求,并按照一定的方式排列这些请求,等待Scrapy Engine来请求时交给它。
- Downloader:下载器,负责下载Scrapy Engine发送的所有Requests请求,并将获取的Responses交给Scrapy Engine,由其交给Spiders来处理。
- Spiders:负责处理所有的Responses,从中分析提取数据,获取Item需要的数据,并将需要跟进的URL提交给Scrapy Engine,由其交给Scheduler。
- Item Pipeline:项目管道,负责处理Spiders中得到的Item,像去重、持久化等操作。
- Downloader Middlewares:中间下载器,可以让你自定义扩展下载功能的组件。
- Spider Middlewares:用于扩展Scrapy Engine和Spiders之间交互的组件。
Scrapy执行流程:
- Scrapy Engine从Spiders获取初始的URL,并将这些request交给Scheduler进行排列。
- Scrapy Engine从Scheduler获取处理好的request。
- Scrapy Engine将request传递给Downloader,让其下载。
- Downloader将下载好的Responses返回给Scrapy Engine。
- Scrapy Engine将Responses交给Spiders进行处理,默认传递给Spiders的parse()函数,所以Spiders必须定义这个函数。
- Spiders提取出Item需要的数据和接着要爬的URL,并将这些数据和URL交给Scrapy Engine。
- Scrapy Engine将数据交给Item Pipeline进行处理,将URL交给Scheduler
- 重复步骤2,直到Scheduler中不存在任何requests,程序停止。
Scrapy学习笔记
原文:https://www.cnblogs.com/jxc321/p/9322728.html