首页 > 其他 > 详细

Scrapy学习笔记

时间:2018-07-17 13:32:45      阅读:215      评论:0      收藏:0      [点我收藏+]

一、爬虫框架Scrapy总览

技术分享图片

图片来源于网络

上图就是整个Scrapy的架构图了,主要包括部分作用如下:

  • Scrapy Engine:爬虫引擎,负责制数据流在系统中所有组件中流动,并在相应动作发生时触发事件。简单来说,就是负责Spiders、ItemPipeline、Downloaders和Scheduler之间的信息传递。
  • Scheduler:调度器,负责接受引擎发送过来的requests请求,并按照一定的方式排列这些请求,等待Scrapy Engine来请求时交给它。
  • Downloader:下载器,负责下载Scrapy Engine发送的所有Requests请求,并将获取的Responses交给Scrapy Engine,由其交给Spiders来处理。
  • Spiders:负责处理所有的Responses,从中分析提取数据,获取Item需要的数据,并将需要跟进的URL提交给Scrapy Engine,由其交给Scheduler。
  • Item Pipeline:项目管道,负责处理Spiders中得到的Item,像去重、持久化等操作。
  • Downloader Middlewares:中间下载器,可以让你自定义扩展下载功能的组件。
  • Spider Middlewares:用于扩展Scrapy Engine和Spiders之间交互的组件。

Scrapy执行流程:

  1. Scrapy Engine从Spiders获取初始的URL,并将这些request交给Scheduler进行排列。
  2. Scrapy Engine从Scheduler获取处理好的request。
  3. Scrapy Engine将request传递给Downloader,让其下载。
  4. Downloader将下载好的Responses返回给Scrapy Engine。
  5. Scrapy Engine将Responses交给Spiders进行处理,默认传递给Spiders的parse()函数,所以Spiders必须定义这个函数。
  6. Spiders提取出Item需要的数据和接着要爬的URL,并将这些数据和URL交给Scrapy Engine。
  7. Scrapy Engine将数据交给Item Pipeline进行处理,将URL交给Scheduler
  8. 重复步骤2,直到Scheduler中不存在任何requests,程序停止。

 

Scrapy学习笔记

原文:https://www.cnblogs.com/jxc321/p/9322728.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!