【Scrapy爬虫框架】{1} ——Scrapy爬虫框架解析

参考资料:Python网络爬虫与信息提取(北京理工大学慕课)


此处我们对Scrapy爬虫框架做进一步的解析:

回忆一下Scrapy爬虫框架的“5+2”结构:

其中整个框架的核心是 Engine

任何模块和模块之间的数据流动都要经过 Engine 模块的调度

Engine

  • 控制所有模块之间的数据流
  • 根据条件触发事件
  • 不需要用户修改

Downloader:功能比较单一,只是获得一个请求,并且向网络中提交这个请求,最终获得返回的相关内容

Downloader

  • 根据请求下载网页
  • 不需要用户修改

Scheduler:对于一个中规模爬虫,可能同一时间有很多对网络的爬取请求,哪些先访问,哪些后访问,由Scheduler模块进行调度。由于调度方法和调度功能相对的固定,因此不需要用户修改。

Scheduler

  • 对所有爬取请求进行调度管理
  • 不需要用户修改

这三个模块都不需要用户修改:

Engine、Downloader、Scheduler这三个模块都不需要用户修改。
但它们放在一起,却形成了一个功能:由 Scheduler 发送访问请求,经过 Engine,到达 Downloader。


中间件 Downloader Middleware:


Spider 模块:

简单说,它向整个框架提供了最初始的访问链接,同时对每次爬取回来的内容进行解析,再次产生新的爬取请求,并且从内容中分析出、提取出相关的数据,是整个爬虫框架最核心的一个单元


Item Pipelines 模块:

  • 以流水线方式处理Spider产生的爬取项。

  • 由一组操作顺序组成,类似流水线,每个操作是一个 Item Pipeline 类型。

  • 可能操作包括:清理、检验和查重爬取项中的HTML数据、将数据存储到数据库。

  • 甚至在流水线中前面的功能模块可以去掉 Item Pipeline 的后续操作。

  • 需要用户编写配置代码。

      Item Pipelines里边的功能是完全由用户来编写和定义的。
      用户需要关心的是,对于从网页中提取出来的信息,这些以Items类型封装的信息,
      用户希望怎么做,是将数据存储到数据库里,还是经过简单的清洗,用在什么地方。
      这些是在Item Pipelines中实现的。
    

中间件 Spider Middleware:


总结一下:

框架中的五个模块形成了既定的功能,我们重点编写的是 Spiders 和 Item Pipelines 模块

用户为了操作其中的数据流,对数据流进行一定的控制,可以通过两个中间键,对其中的 REQUESTS、RESPONSE 和 ITEMS 做一定的操作。

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值