Scrapy 框架结构及工作原理

 

 

 

 

 

1、下图为 Scrapy 框架的组成结构,并从数据流的角度揭示 Scrapy 的工作原理

 2、首先、简单了解一下 Scrapy 框架中的各个组件

组       件描      述类   型
ENGINE引擎,框架的核心,其他所有组件在其控制下协同工作 内部组件
SCHEDULER调度器,负责对 SPIDER 提交的下载请求进行调度内部组件
DOWNLOADER   下载器,负责下载页面(发送 HTTP 请求/接收 HTP 响应)  内部组件
SPIDER爬虫,负责提取页面中的数据,并产生对新页面的下载请求 外部组件
MIDDLEWAERE中间件,负责对 Request 对象和 Response 对象进行处理可选组件
ITEM PIPELINE数据管道,负责对爬取到的数据进行处理可选组件

                 对于用户来说,Spider 是最核心的组件,Scrapy 开发是围绕着 Spider 展开的 

3、接下来,看一下框架中的数据流

对     象描     述
REQUEST   Scrapy 中的 HTTP 请求对象   
RESPONSE Scrapy 中的 HTTP 响应对象
ITEM从页面中爬取的一项数据

    Request 和 Response 是 HTTP 协议的术语,即 HTTP 请求和 HTTP 响应,Scrapy 框架中定义了相应的 Request 和 Response 类,这里的 Item 带白哦Spider 从页面中爬取的一项数据

    

4、最后,我们来说明一下以上几种对象在框架中的流动过程

  (1)当 Spider 要爬取某 URL 地址的页面时,需要用该 URL 构造一个 Request 对象,提交给 ENGINE.

  (2)Request 对象随后进入 SCHEDULER 按某种算法进行排队,之后的某个时刻 SCHEDULER 将其出队,送往 DOWNLOADER

  (3)DOWNLOADER 根据Request 对象中的 URL 地址发送一次 HTTP 请求到网站服务器,之后用服务器返回的 HTTP 响应构造出一个 Response 对象,其中包含页面的 HTML 文本

  (4)Response 对象最终会被递交给 SPIDER 的页面解析函数(构造 Request 对象时指定)进行处理,页面解析函数从页面中提取带数据,封装成 Item 提交给 ENGINE,

    item之后被送往 ITEM PIPELINES 进行处理,最终可能由 EXPORTER 易某种数据格式写入文件(csv, json)另一方面,页面解析函数还从页面中提取链接,构造新的

    Request 对象提交给 ENGINE 

  理解了框架中的数据流,也就理解了 Scrapy 爬虫的工作原理,如果把框架中的组件比作人体的各个器官,Request 和 Response 对象便是血液,Item 则是代谢产物

 

转载于:https://www.cnblogs.com/jcjc/p/10904651.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值