Scrapy 框架中的下载中间件(二十七)

一、什么是下载中间件?

  • 下载中间件是一个用来对Scrapy中的request/response处理过程的类。它是一个轻量级的底层系统,用来全局修改scrapy的request和response。scrapy框架中的下载中间件,是实现了特殊方法的类
  • scrapy系统自带的中间件被放在DOWNLOADER_MIDDLEWARES_BASE设置中。
  • 用户自定义的中间件需要在DOWNLOADER_MIDDLEWARES中进行设置,该设置是一个dict形式,键是中间件类路径,期值是中间件的顺序,是一个正整数,范围是0-1000,越小越靠近引擎。
    Scrapy 框架中的下载中间件(二十七)_第1张图片

二、下载中间件API

每个中间件都是Python的一个类,它定义了以下一个或多个方法:

  • process_request(request,spider)
    处理请求,对于通过中间件的每个请求调用此方法。
  • process_response(request, response, spider)
    处理响应,对于通过中间件的每个响应,调用此方法。
  • process_exception(request, exception, spider)
    处理请求时发生了异常调用。
  • from_crawler(cls,crawler )
    pider、downloadmiddleware以及pipeline中经常使用from_crawler来传递参数,cls是表示这个中间件的类,from_crawler是 来初始化一个 middleware。

三、内置下载中间件

常用内置中间件:

  • CookieMiddleware-----支持cookie,通过设置COOKIES_ENABLED 来开启和关闭
  • HttpProxyMiddleware----HTTP代理,通过设置request.meta['proxy']的值来设置
  • UserAgentMiddleware ---- 用户代理中间件。

其他中间件见官方文档:https://docs.scrapy.org/en/latest/topics/downloader-middleware.html

你可能感兴趣的:(Scrapy 框架中的下载中间件(二十七))