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 如果要允许请求的任何响应代码,请执行以下操作。 |