scrapy框架

scrapy架构.png

1. 引擎 (scrapy engine)

负责scrapy中数据流的控制

2. 调度器(scheduler)

负责从引擎接受request并将其入队

3. 下载器(downloader)

通过下载中间件
负责获取页面数据并提供给引擎,而后提供给spider

数据流

引擎负责各部分的分工,数据的流动,所有部分均需要引擎分配工作

  1. 引擎获取url:引擎打开网站(start_domain),找到处理该网站的spider,并请求start_url(第一个url);
  2. 引擎(url)-->调度器入队(request方式):引擎获取url并交给调度器以request方式调度,将request入队;
    ——————request部分完成——————
  3. 引擎-->调度器请求url;调度器-->引擎返回url:引擎向调度器请求要爬取的url,调度器返回给引擎;
  4. 引擎(url)-->下载器中间件-->下载器:引擎通过下载中间件(request方向)转发给下载器;
  5. 下载器(response)-->下载器中间件-->引擎:页面下载完毕,下载生成该页面的response,并将其通过下载器中间件返回给引擎;
  6. 引擎(response)-->spider中间件-->spider:引擎接收response并通过spider中间件发送给spider;
    ——————resopnse部分完成——————
  7. spider(item、response)-->引擎:spider处理response并返回item及新的request给引擎;
  8. 引擎(item)-->item pipeline:引擎将item发送给item pipeline;
  9. 引擎(request)-->调度器:引擎将request发送给调度器;
  10. 返回第二步开始重复,直到调度器中request为空,引擎关闭该网站。

你可能感兴趣的:(scrapy框架)