Как подключиться к сайту https с помощью Scrapy через Polipo через TOR?

Не совсем уверен, в чем проблема здесь.

Запуск Python 2.7.3 и Scrapy 0.16.5

Я создал очень простого паука Scrapy для проверки соединения с моим локальным прокси-сервером Polipo, чтобы я мог отправлять запросы через TOR. Основной код моего паука выглядит следующим образом:

from scrapy.spider import BaseSpider

class TorSpider(BaseSpider):
    name = "tor"
    allowed_domains = ["check.torproject.org"]
    start_urls = [
        "https://check.torproject.org"
    ]

    def parse(self, response):
        print response.body

Для моего промежуточного ПО прокси я определил:

class ProxyMiddleware(object):
    def process_request(self, request, spider):
        request.meta['proxy'] = settings.get('HTTP_PROXY')

Мой HTTP_PROXY в моем файле настроек определяется как HTTP_PROXY = 'http://localhost:8123',

Теперь, если я изменю свой начальный URL-адрес на http://check.torproject.org/, все работает нормально, никаких проблем.

Если я пытаюсь запустить https://check.torproject.org/, я каждый раз получаю сообщение об ошибке 400 Bad Request (я также пробовал разные https: // сайты, и у всех них одна и та же проблема):

2013-07-23 21:36:18+0100 [scrapy] INFO: Scrapy 0.16.5 started (bot: arachnid)
2013-07-23 21:36:18+0100 [scrapy] DEBUG: Enabled extensions: LogStats, TelnetConsole, CloseSpider, WebService, CoreStats, SpiderState
2013-07-23 21:36:18+0100 [scrapy] DEBUG: Enabled downloader middlewares: HttpAuthMiddleware, DownloadTimeoutMiddleware, RandomUserAgentMiddleware, ProxyMiddleware, RetryMiddleware, DefaultHeadersMiddleware, RedirectMiddleware, CookiesMiddleware, HttpCompressionMiddleware, ChunkedTransferMiddleware, DownloaderStats
2013-07-23 21:36:18+0100 [scrapy] DEBUG: Enabled spider middlewares: HttpErrorMiddleware, OffsiteMiddleware, RefererMiddleware, UrlLengthMiddleware, DepthMiddleware
2013-07-23 21:36:18+0100 [scrapy] DEBUG: Enabled item pipelines: 
2013-07-23 21:36:18+0100 [tor] INFO: Spider opened
2013-07-23 21:36:18+0100 [tor] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2013-07-23 21:36:18+0100 [scrapy] DEBUG: Telnet console listening on 0.0.0.0:6023
2013-07-23 21:36:18+0100 [scrapy] DEBUG: Web service listening on 0.0.0.0:6080
2013-07-23 21:36:18+0100 [tor] DEBUG: Retrying <GET https://check.torproject.org> (failed 1 times): 400 Bad Request
2013-07-23 21:36:18+0100 [tor] DEBUG: Retrying <GET https://check.torproject.org> (failed 2 times): 400 Bad Request
2013-07-23 21:36:18+0100 [tor] DEBUG: Gave up retrying <GET https://check.torproject.org> (failed 3 times): 400 Bad Request
2013-07-23 21:36:18+0100 [tor] DEBUG: Crawled (400) <GET https://check.torproject.org> (referer: None)
2013-07-23 21:36:18+0100 [tor] INFO: Closing spider (finished)

И чтобы еще раз убедиться, что с настройкой TOR/Polipo все в порядке, я могу запустить следующую команду curl в терминале и установить соединение: curl --proxy localhost:8123 https://check.torproject.org/

Любые предложения относительно того, что здесь не так?

2 ответа

Пытаться

rq.meta['proxy'] = 'http://127.0.0.1:8123'

В моем случае это работает

Другие вопросы по тегам