尝试让Tor与Python配合使用,但总是连接被拒绝。
我一直在尝试让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/
希望对你有帮助。