一、Scrapy架构图
scrapy的架构图如下,红色箭头表示工作流程
二、Scrapy的组成
- Scrapy Engine
Scrapy Engine主要用来协调数据流在Scrap各个组件之间工作的
-
Schedule
执行的调度器,简单点来说可以理解为一个队列 -
Downloader
下载器,简单点理解就是执行request的组件 -
Spiders
负责提供第一个url,并在后续response中解析新的需要请求的url -
Item Piplines
负责对获取到的响应数据进行数据清洗,然后对数据进行存储,可以存储到多个中存储类型中看比如文件、数据库等
Scrapy主要就是这五个部分,当然还有一些中间件,主要在两个组件之间锁一些中间处理
三、Scrapy工作流程
(1)Spiders 将第一条url发送给Scrapy Engine
(2)Scrapy Engine把请求发送给Scheduler调度器
(3)Scheduler调度器调度好执行顺序后传递给Scrapy Engine
(4)Scrapy Engine根据Schedule的调度,将request请求发送给Downloader
(5)Downloader请求完成后,将请求结果返回给Scrapy Engine
(6)Scrapy Engine收到响应结果后,将响应结果传递给Spider,Spider可根据返回结果分析是否有新的的url传递给Scrapy 继续请求
(7)Spider将分析结果传递给Scrapy Engine
(8)Scrapy Engine将响应结果继续传递给Item Piplines供对响应数据进行清洗架构并存储