scrapy использует HTTP 1.0 по умолчанию - PullRequest
0 голосов
/ 12 сентября 2011

Похоже, Scrapy использует HTTP 1.0 по умолчанию.Есть ли настройка, позволяющая использовать HTTP 1.1 для отправки запроса?

Спасибо.

1 Ответ

4 голосов
/ 12 сентября 2011

С http://dev.scrapy.org/wiki/ScrapyRecipes:

Как подделать запросы, чтобы быть HTTP 1.1-совместимым Это можно сделать, переопределив фабрику клиентов Scrapy HTTP со следующими (недокументированными) настройками:

DOWNLOADER_HTTPCLIENTFACTORY = 'myproject.downloader.HTTPClientFactory'

Вот возможная реализация модуля myproject.downloader:

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           
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...