2012-07-22 2 views
6

私はTorをUbuntuでセットアップし、それをscrapyフレームワーク内で使うのに助けが必要です。Torのプロキシを使って治療する

私はいくつかの研究を行なったし、このガイドを見つけた:polipo(

DOWNLOADER_MIDDLEWARE = { 
         'spider.middlewares.RetryChangeProxyMiddleware': 600, 
         } 

、その後、あなただけのローカルTORプロキシ経由でリクエストを送信したい:

class RetryChangeProxyMiddleware(RetryMiddleware): 

    def _retry(self, request, reason, spider): 
     log.msg('Changing proxy') 
     tn = telnetlib.Telnet('127.0.0.1', 9051) 
     tn.read_until("Escape character is '^]'.", 2) 
     tn.write('AUTHENTICATE "267765"\r\n') 
     tn.read_until("250 OK", 2) 
     tn.write("signal NEWNYM\r\n") 
     tn.read_until("250 OK", 2) 
     tn.write("quit\r\n") 
     tn.close() 
     time.sleep(3) 
     log.msg('Proxy changed') 
     return RetryMiddleware._retry(self, request, reason, spider) 

その後、settings.pyにそれを使用します)これは次のようにすることができます:

tsocks scrapy crawl spirder 

誰でも確認できますfferent IP?

+0

ちょうどあなた自身の資源にしようとすると、サーバーのログをチェックします。そして、所有者から隠すためのブラウザ識別子のリストを設定するか、あなたのクローラのunic idを追加してください。 – nk9

+0

ブラウザのIDのリストを設定するにはどうすればよいですか? – DjangoPy

+0

ああ...私は病院で働いていなかったので、今は助けを求めています:)。しかし、あなた自身のサイトのテストでは、簡単な解析ログのためにunic idを使用することをお勧めします – nk9

答えて