Scrapy 默认使用 HTTP 1.0
看起来Scrapy默认使用的是HTTP 1.0。有没有设置可以让它使用HTTP 1.1来发送请求呢?
谢谢。
1 个回答
4
来自 http://dev.scrapy.org/wiki/ScrapyRecipes:
如何伪装请求以符合HTTP 1.1标准
你可以通过覆盖Scrapy的HTTP客户端工厂来实现这一点,使用以下(未记录的)设置:
DOWNLOADER_HTTPCLIENTFACTORY = 'myproject.downloader.HTTPClientFactory'
这是我项目中下载器模块的一个可能实现:
from scrapy.core.downloader.webclient import ScrapyHTTPClientFactory, ScrapyHTTPPageGetter
class PageGetter(ScrapyHTTPPageGetter):
def sendCommand(self, command, path):
self.transport.write('%s %s HTTP/1.1\r\n' % (command, path))
class HTTPClientFactory(ScrapyHTTPClientFactory):
protocol = PageGetter