上一节分析了下载器的源码,知道了一个request经过middleware到handler下载返回response,response再经过middleware,最后由scraper处理的流程。
其中正是middleware的存在使我们对下载和解析的控制有很大的灵活性,我们可以自定义中间件来个性化我们的需求。这一节就分析一下middleware在整个下载流程中所发挥的关键作用。
我们从默认的下载中间件入手来分析,先看下默认的下载中间件:
DOWNLOADER_MIDDLEWARES_BASE = { # Engine side