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

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

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


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

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

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

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

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


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


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

相关文章:

  • 2021-12-04
  • 2021-11-20
  • 2021-12-25
  • 2021-07-24
  • 2022-02-07
  • 2022-01-15
  • 2021-11-13
猜你喜欢
  • 2022-12-23
  • 2021-04-25
  • 2021-11-12
  • 2021-12-29
  • 2021-04-27
  • 2021-04-18
相关资源
相似解决方案