Scrapy 爬虫框架解析
工作流程
根据需要爬取的开始链接,engine交给downloader下载网页。
downloader将下载的网页交给engine, engine交给spiders进行解析处理。提取数据及新的url。 并交给engine。
engine将数据交给ITEM PIPELINES 进行数据处理,讲url交给scheduler处理。
engine从scheduler提取url交给downloader处理。并重复以上过程,直到scheduler中没有待处理的url。
-
Engine:Scrapy爬虫框架的控制中心
控制所有模块之间的数据流
根据条件触发事件
不需要用户修改
-
Downloader:Scrapy爬虫框架的下载中心,根据发送过来的url下载网页
根据请求下载网页
不需要用户修改
-
Scheduler:Scrapy爬虫框架的url管理中心,如调度url的爬取顺序等
对所有爬取请求进行调度管理
不需要用户修改
-
Downloader Middleware
目的:实施Engine, Scheduler和Downloader之间进行用户可配置的控制
功能:修改、丢弃、新增请求或响应
用户可编写配置代码
-
Spider:最重要的模块,需要自己编写,解析请求网页返回的内容。
解析Downloader返回的响应(response)
产生爬取项(scraped item)
产生额外的爬取请求(Request), 指新的url
需要用户编写配置代码
-
Item Pipelines:对爬取的数据进行数据处理
以流水线方式处理Spider产生的爬取项
由一组操作顺序组成,每个操作是一个Item Pipeline类型
可能操作包括:清理和检查爬取项中的HTML数据、将数据存储到数据库
需要用户边写代码
-
Spider Middleware
目的:对请求和爬取项的再处理
功能:修改、丢弃、新增请求或爬取项
用户可编写配置代码
Item: 定义用户需要爬取的数据形式