【发布时间】:2012-07-22 19:41:13
【问题描述】:
我需要帮助在 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?
【问题讨论】:
-
尝试使用您自己的资源并检查服务器日志。并设置浏览器标识符列表以向所有者隐藏:) 或为您的爬虫添加 unic id。
-
如何设置浏览器标识列表?
-
哦...我没有使用scrapy,所以我现在只是寻求帮助:)。但是对于您自己的站点上的测试,最好使用 unic id 来轻松解析日志
-
谢谢,我找到了sn-p并已经集成了:)