15. python爬虫——scrapy框架五大核心组件

tech2023-02-19  99

爬虫(Spiders): (1)产生url,(将产生的url封装成请求对象传递给引擎)对url进行手动发送,传递给引擎。 (2)进行数据解析,Spider拿到response后,可调用parse进行数据解析,解析完后的数据将被封装item对象当中,再发送给引擎。

接收Spider传来的请求对象,再将其转发给调度器。


引擎(scrapy): 用来处理整个系统的数据流处理, 触发事务(框架核心)。相当于一个具有触发事务功能的数据中转站,接收各模块处理后的数据后,可将其再转发至相对应的模块。

调度器(scheduler): 用来接收引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回。可以想像成一个URL(抓取网页的网址或者说是链接)的优先队列, 由它来决定下一个要抓取的网址是什么, 同时去除重复的网址

(1)过滤器:调度器首先使用过滤器将收到的请求对象进行去重,过滤。 (2)队列:调度器会将过滤完后已去重后的对象放到队列当中。 完成后,引起对其发送请求时,调度器可以将队列中的请求对象传递给引擎。

下载器(Downloader): 用于下载网页内容, 并将网页内容返回给蜘蛛(Scrapy下载器是建立在twisted这个高效的异步模型上的)

引擎将请求对象传递给下载器,下载器便根据请求对象去互联网上进行数据下载,下载完的数据都存在response里。完成后便将response数据传递给引擎。


Spider拿到response后,便可调用parse进行数据解析。将解析的数据封装到item对象当中,将item对象发送给引擎,引擎再转发给管道。


管道(pipeline): 接收到item对象后,进行持久化存储。 负责处理爬虫从网页中抽取的实体(item),主要的功能是持久化实体、验证实体的有效性、清除不需要的信息。当页面被爬虫解析后,将被发送到项目管道,并经过几个特定的次序处理数据。
最新回复(0)