scrapy流程图的相关讲解(需要掌握)

一.scrapy架构预览图

二.scrapy架构预览图讲解

  Scrapy数据流是由执行的核心引擎(engine)控制,流程是这样的:
  1、爬虫引擎获得初始请求开始抓取。
  2、爬虫引擎开始请求调度程序,并准备对下一一次的请求进行抓取。3、爬虫调度器返回下一个请求给爬虫引擎。
  4、引擎请求发送到下载器,通过下载中间件下载网络数据。5、-旦下载器完成页面下载,将下载结果返回给爬虫引擎。6、引擎将下载器的响应通过中间件返回给爬中进行处理。
  7、爬虫处理响应,并通过中间件返回处理后的items ,以及新的请求给引擎。
  8、引擎发送处理后的items到项目管道,然后把处理结果返回给调度器,调度器计划处理下一个请求抓取。9、重复该过程(继续步骤1) ,直到爬取完所有的ur请求。
三.各个组件的讲解
(1)爬虫引擎(ENGINE)
  爬虫弓擎负责控制各个组件之间的数据流,当某些操作触发事件后都是通过engine来处理。
  调度器
  调度接收来engine的请求并将请求放入队列中,并通过事件返回给engine.
(2)下载器
  通过engine请求下载网络数据并将结果响应给engine.
(3)Spider
  Spider发出请求,并处理engine返回给它下载器响应数据,以items和规则内的数据请求(urds)返回给engine.
  管道项目(item pipeline)
  负责处理engine返回spider解析后的数据,并且将数据持久化,例如将数据存入数据库或者文件。
(4)下载中间件
  下载中间件是engine和下载器交互组件,以钩子(插件)的形式存在,可以代替接收请求处理数据的下载以及将结果响应给engine.
 (5)spider中间件
  spider中间件是engine和spider之间的交互组件,以钩子(插件)的形式存在,可以代替处理responsel以及返回给engineitems及新的请求集。
四.需要知道的scrapy中的相关源代码
1.调度器(scheduler.py)

2.去重机制(dupefilters.py)










猜你喜欢

转载自blog.csdn.net/qq_38661599/article/details/80953326
今日推荐