如何通过tor成功访问python的网站?端口8118和9050不起作用?

时间:2011-08-21 17:12:29

标签: python urllib2 tor

我正在尝试使用python访问一个网站,但我遇到了问题。我开始尝试使用此主题和其中引用的主题:How to make urllib2 requests through Tor in Python?

首先,我尝试了原始代码段:

import urllib2
proxy_handler = urllib2.ProxyHandler({"tcp":"http://127.0.0.1:9050"})
opener = urllib2.build_opener(proxy_handler)
urllib2.install_opener(opener)

然后我尝试在其中一个答案中发布修改后的代码,人们说这些代码适用于他们。不幸的是,代码的工作原理是它下载了页面,但它没有工作,因为我的IP地址仍然相同:

proxy_support = urllib2.ProxyHandler({"http" : "127.0.0.1:8118"})
opener = urllib2.build_opener(proxy_support) 
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
print opener.open('http://www.google.com').read()

我在标准配置中设置了TOR,根据Ubuntu和TOR站点各自的文档,nmap显示在端口9050上运行的TOR tcp代理:9050/tcp open tor-socks但是,当我使用时,我的IP地址不会更改运行上述任一脚本。 python是不是尊重http环境变量,还是存在我缺少的代码问题?

1 个答案:

答案 0 :(得分:2)

TOR提供SOCKS代理。由于urllib2只能处理HTTP代理,因此您必须use a SOCKS implementation