写在前面
下载器中间件是什么? 是用于全局修改Scrapy request和response的一个轻量、底层的系统。
举个例子, 当需要挂代理访问某个网站 、 需要修改爬虫的User-Agent 、 或者需要带cookie访问某个网站的时候 ,下载器中间件的使用就成为了必要!
中间件的使用 激活下载器中间件要激活下载器中间件组件,需将其加入到 DOWNLOADER_MIDDLEWARES 设置中。该设置是一个字典(dict),键为中间件类的路径,值为其中间件的顺序(order)。如下所示,这里 myproject 是你项目的名字, middlewares 是python脚本文件名(可以保存在项目的某个目录下), CustomDownloaderMiddleware 是下载器中间键的名字。
DOWNLOADER_MIDDLEWARES = { 'myproject.middlewares.CustomDownloaderMiddleware': 543, } 编写自己的下载器中间件 class CustomProxyMiddleware(object): def process_request(self, request, spider): try: request.meta["proxy"] = "http://127.0.0.1:8080" except Exception as err: print err class CustomUserAgentMiddleware(object): def process_request(self, request, spider): request.headers['User-Agent'] = "agent by me"