scrapy 架构文档
这是中文文档网址
https://scrapy-chs.readthedocs.io/zh_CN/0.24/topics/architecture.html
英文文档 https://doc.scrapy.org/en/latest/topics/architecture.html
scrapy各部分之间的数据流向是如何交互:
1>引擎将起始url构造成Request交给调度器;
2>调度器对Request对象生成指纹信息,根据是否去重来决定是否将Request放入队列中;
3>引擎从调度器的队列中不断得获取下一个Request请求;
4>引擎将Request请求交给下载器Downloader进行下载,期间会经过下载器中间件process_request的处理;
5>下载器下载完成以后,经过process_response将Response对象返回给引擎;
6>引擎将Response对象交给爬虫Spider进行解析,提取数据,期间经过爬虫中间件;
7>爬虫Spider将提取的结果传递给引擎,引擎将item交给管道,将Request对象交给调度器继续调度;
DownoadMiddleware的作用:
下载器中间件,可以在发起请求之前对Request对象添加必要得信息,比如请求头,Cookie等。
自定义:
需要实现process_request()函数和process_response()函数。
ItemPipeline的作用:
对爬虫解析出来得item对象进行数据得保存。
自定义:process_item()函数。