Scrapy 爬虫框架解析
scrapy_architecture工作流程
-
根据需要爬取的开始链接,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: 定义用户需要爬取的数据形式
网友评论