Scrapy框架的解析
1.ENGINE模块:Scrapy框架的核心,控制所有模块之间的数据流,根据各个模块提供的事件进行触发
2.DOWNLOADER模块:根据用户提供的请求下载网页,功能单一,即 获得请求—向网络中提交请求—返回内容
DOWNLOADER模块和ENGINE模块之间的中间件Downloader Middleware:
目的:实施ENGINE,SCHEDULER,DOWNLOADER之间进行用户可配置的控制
功能:修改、丢弃、新增向网络发送的请求或网络返回的响应
用户可以编写代码在Downloader Middleware中(一般的使用不需要修改),将这样的请求拦截下来
3.SCHEDULER模块:对所有爬去请求进行调度管理,
4.SPIDERS模块:解析DOWNLOADER返回的用户响应(Response),产生爬取项(scrapy items)和额外的爬取请求(Requests),它是scrapy框架最核心的一个单元,它向整个框架提供最初始的访问链接,并且对爬取回来的内容进行解析,再次产生新的爬取请求,并且从内容中提取相关的数据
5.ITEM PIPELINES模块:它的功能完全由用户编写和定义,它以流水线方式处理SPIDERS产生的爬取项,,由一组操作顺序组成,类似流水线,每个操作是一个ITEM PIPELINES类型
可能操作包括:清理、检验和查重爬取项中的HTML数据,将数据存储到数据库
SPIDERS模块和ENGINE模块之间的中间件Spider Middleware:
目的:对Spider产生的请求和爬取项进行再处理的操作
功能:修改、丢弃、新增请求或爬取项,用户可以编写配置代码