Scrapy运行流程

5 篇文章 0 订阅
2 篇文章 0 订阅

Scrapy组件:

* 引擎【Engine】:处理整个系统的数据流处理 触发事务
* 调度器【Scheduler】:接收Engine发来的请求并压入队列,在请求时执行出队
* 下载器【Downloader】:通过Engine拿到调度器出队的URL执行下载操作,并将response返回给Spiders
* 爬虫【Spiders】:从Downloader返回的response中提取item,即实体(爬取的主要目标就是从非结构性的数据源提取结构性数据)。必须返回一个包含 Request 及(或) Item 的可迭代的对象
* 管道【Pipeline】:其主要功能是持久化实体、验证实体的有效性。具体功能如下,

  •     清理HTML数据
  •     验证爬取的数据(检查item包含某些字段)
  •     查重(并丢弃)
  •     将爬取结果保存到数据库中

* 下载中间件【Downloader Middlewares】:介于Engine和Downloader之间的中间件,主要用于处理Engine和Downloader之间之间的请求及响应。
* 爬虫中间件【Spider Middlewares】:介于Engine和Spiders之间的中间件,主要用于处理Spider的响应输入和请求输出。
* 调度中间件【Scheduler Middlewares】:介于Engine和Scheduler之间的中间件,主要用于处理Engine发送到Scheduler的请求和响应。

 

Scrapy运行流程:

  1. Engine向Spiders请求URL
  2. Spiders爬取URL对象并返回给Engine
  3. Engine将URL对象执行入队操作存入Scheduler中
  4. Scheduler执行出队操作,将URL通过Engine处理提交给Downloader
  5. Downloader拿到URL后执行下载操作,并将response通过Engine处理返回给Spiders
  6. Spiders解析从Downloader返回的response(提取所需数据),如果解析出的是URL对象则重复执行步骤2,如果解析出的是item对象则需要进行结构化数据处理,并将处理后的item通过Engine处理传到Pipeline进行进一步处理
  7. Pipeline处理并保存从Spiders返回的Item

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值