笨鸟编程-零基础入门Pyhton教程

 找回密码
 立即注册

下载器中间件

发布者: 笨鸟自学网



HttpCompressionMiddleware

classscrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware[源代码]

此中间件允许从网站发送/接收压缩(gzip、deflate)流量。

该中间件还支持解码 brotli-compressed 以及 zstd-compressed 响应,前提是 brotlipy 或 zstandard 分别安装了。

httpcompression中间件设置

COMPRESSION_ENABLED

违约: True

是否启用压缩中间件。

HttpProxyMiddleware

classscrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware[源代码]

此中间件设置HTTP代理以用于请求,方法是设置 proxy 的元值 Request 对象。

就像Python标准库模块一样 urllib.request ,它遵循以下环境变量:

  • http_proxy

  • https_proxy

  • no_proxy

您也可以设置meta键 proxy per-request, to a value like http://some_proxy_server:port or http://username:password@some_proxy_server:port. Keep in mind this value will take precedence over http_proxy/https_proxy 环境变量,它也将忽略 no_proxy 环境变量。

RedirectMiddleware

classscrapy.downloadermiddlewares.redirect.RedirectMiddleware[源代码]

此中间件根据响应状态处理请求的重定向。

请求通过的URL(在被重定向时)可以在 redirect_urls Request.meta 钥匙。

每个重定向入站背后的原因 redirect_urls 可以在 redirect_reasons Request.meta 钥匙。例如: [301, 302, 307, 'meta refresh'] 。

原因的格式取决于处理相应重定向的中间件。例如, RedirectMiddleware 以整数表示触发响应状态代码,而 MetaRefreshMiddleware 总是使用 'meta refresh' 字符串作为原因。

这个 RedirectMiddleware 可以通过以下设置进行配置(有关详细信息,请参阅设置文档):

  • REDIRECT_ENABLED

  • REDIRECT_MAX_TIMES

如果 Request.meta 有 dont_redirect 键设置为True,则此中间件将忽略该请求。

如果要处理蜘蛛中的某些重定向状态代码,可以在 handle_httpstatus_list 蜘蛛属性。

例如,如果您希望重定向中间件忽略301和302响应(并将它们传递给您的spider),可以这样做:

class MySpider(CrawlSpider):
    handle_httpstatus_list = [301, 302]

这个 handle_httpstatus_list 的关键字 Request.meta 还可以用于指定在每个请求的基础上允许哪些响应代码。您还可以设置元键 handle_httpstatus_all 至 True 如果要允许请求的任何响应代码,请执行以下操作。


上一篇:体系结构概述下一篇:蜘蛛中间件

Archiver|手机版|笨鸟自学网 ( 粤ICP备20019910号 )

GMT+8, 2024-12-4 02:05 , Processed in 0.068045 second(s), 17 queries .

© 2001-2020

返回顶部