尝试让Tor与Python配合使用,但总是连接被拒绝。

5 投票
3 回答
3679 浏览
提问于 2025-04-17 02:43

我一直在尝试让Tor和Python一起工作,但一直遇到困难。无论是哪个示例,我都无法让它们正常运行。这里有一个来自Stackoverflow的例子。

import urllib2
proxy  = urllib2.ProxyHandler({'http':'127.0.0.1:8118'})
opener = urllib2.build_opener(proxy)
print opener.open('http://check.torproject.org/').read()

我已经安装了Tor,并且在使用Aurora浏览时一切正常。但是运行这个Python脚本时,我得到了

Traceback (most recent call last):
File "/home/x/Tor.py", line 4, in <module>
  print opener.open('http://check.torproject.org/').read()
File "/usr/lib/python2.6/urllib2.py", line 391, in open
  response = self._open(req, data)
File "/usr/lib/python2.6/urllib2.py", line 409, in _open
  '_open', req)
File "/usr/lib/python2.6/urllib2.py", line 369, in _call_chain
  result = func(*args)
File "/usr/lib/python2.6/urllib2.py", line 1161, in http_open
  return self.do_open(httplib.HTTPConnection, req)
File "/usr/lib/python2.6/urllib2.py", line 1136, in do_open
  raise URLError(err)
urllib2.URLError: <urlopen error [Errno 111] Connection refused>

我在网上搜索过,但找不到有类似问题的人。我是不是漏掉了什么显而易见的东西?!

3 个回答

0

Tor可以当作一个Socks5代理。你需要在设置你的脚本时考虑到这一点。可以在网上搜索“socks.py”来了解更多。

0

我也遇到了同样的问题,但找不到解决办法!

我在用Ubuntu系统,可以通过Vidalia打开TOR(最新版本),并且可以正常上网。所以Vidalia是可以工作的,并且已经连接上了。

如果我在Python中使用TorCtl,我能收到TOR的回复,说明它正在运行!

但是,如果我想像Loko说的那样,用urllib2打开一个网页,我得到的回复却是一样的。

如果有人有好的主意,那就太好了!

3

我写了一篇文章,介绍了如何在Python中使用Tor(通过SOCKS协议)。你可以在这个链接找到它:http://blog.databigbang.com/distributed-scraping-with-multiple-tor-circuits/

希望对你有帮助。

撰写回答