2012-07-22 96 views
6

我需要帮助在Ubuntu中设置Tor并在scrapy框架内使用它。使用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 

没有人可以确认,这种方法的工作原理,你得到di不同的IP?

+0

刚刚尝试对自己的资源,并检查服务器日志。并设置用于隐藏所有者的浏览器标识符列表:)或为您的搜寻器添加unic id。 – nk9 2012-07-22 19:56:41

+0

如何设置浏览器标识列表? – DjangoPy 2012-07-22 20:07:48

+0

哦......我没有使用scrapy,所以现在我只是寻求帮助:)。但对于你自己的网站测试更好地使用unic id来轻松解析日志 – nk9 2012-07-22 20:14:32

回答