2013-07-23 19 views
8

ここに何が問題なのか完全にはっきりしません。TOR経由でPolipo経由でScrapyを使用してhttpsサイトに接続するにはどうすればよいですか?

私はTOR経由でリクエストを送信することができますので、私は私の地元のPolipoプロキシへの接続をテストするための非常にシンプルなScrapyクモを作成したのPython 2.7.3、およびScrapy 0.16.5

を実行します。次のように私のクモの基本的なコードは次のとおりです。私のプロキシミドルウェアの

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を試してみた):私はhttps://check.torproject.orgに対して実行しようとすると

は、私は400不正な要求エラーたびに取得

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 --proxy localhost:8123 https://check.torproject.org/

何が問題なのかここに?

+0

https_proxyはどのように設定されていますか? HTTPとHTTPSは通常、異なるポートなどで送信され、異なるプロキシが必要になります。 – Andenthal

+0

わかりません。確かにHTTPプロキシに接続すると、HTTPS URLに接続しても正常に動作しますか?なぜHTTPS URLに接続するためにHTTPSプロキシに接続する必要がありますか?その場合、上記のcURLコマンドは失敗しないでしょうか? –

答えて

0
+4

あなたのリンクには回答が含まれていても、StackOverflowの目標の1つは、実際の解決策をカタログ化して整理することです。回答の関連部分を要約し、そのリンクを参照として使用できる場合は、回答をより受け入れやすくなります。詳細については、[このページ](http://stackoverflow.com/questions/how-to-answer)を参照してください。 – beroe

0

は、それが作品をだ私の場合は

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

をお試しください

関連する問題