2

我正在尝试通过 tor 使用 python 访问网站,但我遇到了问题。我开始尝试这个线程和其中引用的线程:如何在 Python 中通过 Tor 发出 urllib2 请求?

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

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()

根据 Ubuntu 和 TOR 站点各自的文档,我在标准配置中设置了 TOR,并且 nmap 显示在端口 9050 上运行的 TOR tcp 代理:9050/tcp open tor-socks但是,当我运行上述任何一个脚本时,我的 IP 地址都没有改变。python 是否不尊重 http 环境变量,或者是否存在我遗漏的代码问题?

4

1 回答 1

2

TOR 提供了一个 SOCKS 代理。由于 urllib2 只能处理 HTTP 代理,因此您必须使用 SOCKS 实现

于 2011-08-21T17:25:04.710 回答