Scrapy 框架结构及工作原理

1、下图为 Scrapy 框架的组成结构,并从数据流的角度揭示 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 则是代谢产物

上一篇:Android获取网络时间的方法


下一篇:INI文件,WritePrivateProfileString()和GetPrivateProfileString()函数----转载