本篇博客补充一下 scrapy 中的 SpiderMiddlerware 相关用法。
scrapy 架构知识补充
在 scrapy 中所有的中间件都被当做类处理(管理这些中间件的类是 MiddlerwareManager),其大概可以分为四种。
DownloaderMiddlerware
:下载中间件,其中包括方法process_request()
,process_response()
,process_exception()
;SpiderMiddlerware
:爬虫中间件,其中包括方法process_spider_input()
,process_spider_output()
,process_spider_exception()
,process_start_requests()
;ItemPipeline
:数据管道,包括process_item()
,open_spider()
,close_spider()
;Extension
:其它扩展。
其中各部分被使用的场景依次如下:
DownloaderMiddlerware
:执行请求响应相关问题,例如修改用户代理