【问题标题】:Using Tor proxy with scrapy将 Tor 代理与 scrapy 一起使用
【发布时间】: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并已经集成了:)

标签: python proxy scrapy tor


【解决方案1】:

我正在使用这个 sn-p:http://snipplr.com/view/66992/use-a-random-user-agent-for-each-request/

更新:修复了断开的链接

【讨论】:

  • 这个链接好像坏了。
  • 随机用户代理仍然可以被跟踪。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-12-04
  • 1970-01-01
  • 2013-08-12
  • 1970-01-01
  • 2013-01-10
  • 2018-11-02
  • 2014-03-06
相关资源
最近更新 更多