7

UbuntuでTorをセットアップし、Scrapyフレームワーク内で使用するためのサポートが必要です。

私はいくつかの調査を行い、このガイドを見つけました:

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で使用します。

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

次に、ローカルのTorプロキシ(polipo)を介してリクエストを送信します。これは次の方法で実行できます。

tsocks scrapy crawl spirder 

この方法が機能し、異なるIPを取得することを誰かが確認できますか?

4

1 に答える 1

0

私はこのスニペットを使用していました:http ://snipplr.com/view/66992/use-a-random-user-agent-for-each-request/

更新:壊れたリンクが修正されました

于 2012-08-26T09:43:29.163 に答える