【问题标题】:how to access a website with python through tor, successfully? ports 8118 and 9050 don't work?如何通过tor成功使用python访问网站?端口 8118 和 9050 不起作用?
【发布时间】:2011-08-21 17:12:29
【问题描述】:

我正在尝试通过 tor 使用 python 访问网站,但我遇到了问题。我从这个线程开始我的尝试,其中引用了一个:How to make urllib2 requests through Tor in Python?

首先我尝试了原始代码sn-p:

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环境变量,还是我遗漏了代码问题?

【问题讨论】:

    标签: python urllib2 tor


    【解决方案1】:

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

    【讨论】:

    • 我认为在我链接的问题中,用户正在试图通过 TOR 发送 HTTP 请求(因为他们试图抓取页面)。主要答案建议尝试通过实际的 TOR 端口(8118)进行连接,但这对我不起作用,因此提出了新问题。
    • @pythonscript 哎呀,你完全正确。从答案中删除了该部分。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-14
    • 2010-09-09
    • 1970-01-01
    • 2019-01-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多