2013-07-23 17 views
8

Sorunun ne olduğundan tam olarak emin değilsiniz.Tors üzerinde Polipo üzerinden Scrapy ile https siteye nasıl bağlanır?

Ben bu yüzden TOR aracılığıyla talepleri gönderebilir benim yerel Polipo vekil bağlanırken test etmek çok basit scrapy örümcek oluşturduk Python 2.7.3 ve scrapy 0.16.5

Running. aşağıdaki gibi benim örümceğin Temel kodudur: proxy katman için

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 

, ben tanımladığınız: ayarlarım dosyasında

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

Benim http_proxy HTTP_PROXY = 'http://localhost:8123' olarak tanımlanır.

Şimdi, başlangıç ​​URL'mi http://check.torproject.org olarak değiştirirsem, her şey iyi çalışıyor, sorun değil. (: // siteleri ve hepsi aynı sorun var ben de farklı https denedim): Ben https://check.torproject.org karşı çalıştırmayı denerseniz

, ben 400 Geçersiz İstek hatası her zaman olsun

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) 

Ben bizzat TOR/Polipo kurmak benim, ben bir terminalde aşağıdaki kıvırın komutunu çalıştırın ve ince bağlanabiliyor değilim yanlış bir şey olmadığını tekrar kontrol etmek: curl --proxy localhost:8123 https://check.torproject.org/

Herhangi öneri neyin yanlış olarak İşte?

+0

https_proxy ayarınız nedir? HTTP ve HTTPS, genellikle farklı bağlantı noktaları üzerinden gönderilir ve farklı proxy'ler gerektirir. – Andenthal

+0

Takip ettiğimden emin değilim. Elbette bir HTTPS URL'sine bağlanan bir HTTP proxy'sine bağlanıyor, iyi çalışıyor mu? Bir HTTPS URL'sine bağlanmak için neden bir HTTPS proxy'sine bağlanmalıyım? Durum buysa, yukarıdaki cURL komutu başarısız olmaz mı? –

cevap

0
+4

Bağlantılarınızda yanıtlar bulunabilse de, StackOverflow'un hedeflerinden biri, yalnızca gerçek ayrıştırmaya neden olabilecek veya ayrıştırabilecek bir bağlantı değil, sorunlara gerçek çözümleri kataloglamak ve düzenlemek. İlgili bölümleri bir cevap olarak özetleyebilir ve bağlantıları referans olarak kullanabilirseniz, cevabınızı daha kabul edilebilir hale getirir. Daha fazla yönerge için [bu sayfa] bölümüne bakın (http://stackoverflow.com/questions/how-to-answer). – beroe

0

eserleri incelenir Benim durumumda

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

deneyin