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を取得することを誰かが確認できますか?