美文网首页
Scrapy 框架中的下载中间件(二十七)

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

作者: 梦捷者 | 来源:发表于2019-08-02 18:57 被阅读0次

    一、什么是下载中间件?

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

    二、下载中间件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 框架中的下载中间件(二十七)

          本文链接:https://www.haomeiwen.com/subject/kljrdctx.html