首页技术文章正文

Scrapy框架流程图和框架组件

更新时间:2021-06-18 来源:黑马程序员 浏览量:

学习Scrapy框架,从理解它的架构开始。

Scrapy框架架构图
Scrapy框架

从上图可知,Scrapy框架主要包含以下组件:

(1) Scrapy Engine (引擎) :负责Spiders、Item Pipeline、Downloader、Scheduler之间的通信,包括信号和数据的传递等。

(2) Scheduler (调度器):负责接收引擎发送过来的Request请求,并按照一定的方式进行整理排列和人队,当引擎需要时,交还给引擎。

(3) Downloader (下载器) :负责下载Scrapy Engine 发送的所有Requests (请求) ;并将其获取到的Responses (响应)交还给Scrapy Engine,由Scrapy Engine交给Spider来处理。

(4) Spiders (爬虫) :负责处理所有Responses,从中分析提取数据,获取Item字段需要的数据,并将需要跟进的URL提交给引擎,再次进人Scheduler (调度器)。

(5) Item Pipeline (管道):负责处理Spiders中获取到的Item数据,并进行后期处理(详细分析、过滤、存储等)。

(6) Downloader Middlewares (下载中间件):是一个可以自定义扩展下载功能的组件。

(7) Spider Middlewares (Spider中间件):是一个可以自定义扩展Scrapy Engine和Spiders中间通信的功能组件(例如,进人Spiders的Responses和从Spiders出去的Requests)。

Scrapy的这些组件通力合作,共同完成整个爬取任务。架构图中的箭头是数据的流动方向,首先从初始URL开始,Scheduler 会将其交给Downloader进行下载,下载之后会交给Spiders进行分析。Spiders分析出来的结果有两种:一种是需要进一步爬取的链接,例如之前分析的“下一页”的链接,这些会被传回Scheduler;另一种是需要保存的数据,它们被送到Item Pipeline,这是对数据进行后期处理(详细分析、过滤、存储等)的地方。另外,在数据流动的通道里还可以安装各种中间件,进行必要的处理。



猜你喜欢:

Python爬虫难学吗?学会需要多久?

网络爬虫之通用爬虫和聚焦爬虫

Python爬虫支持的网页解析技术有哪些?

三种分布式爬虫策略的优缺点

多线程爬虫是什么?多线程爬虫流程分析

黑马程序员python+大数据培训课程

分享到:
在线咨询 我要报名
和我们在线交谈!