集成tor和python

Posted

技术标签:

【中文标题】集成tor和python【英文标题】:integrating tor and python 【发布时间】:2012-11-16 20:11:00 【问题描述】:

我想知道如何在 Python 中通过 Tor 访问网页。

有一些类似的问题,但没有一个得到完全回答,而且很多答案完全错误。

我偶然发现的第一页是这个; How to make urllib2 requests through Tor in Python?,那里最受欢迎的答案是;

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

有几页有类似的答案,反正该页上有人评论了;

“阅读此线程的人可能值得知道端口 8118 实际上是 Privoxy 的端口,而不是 Tor。Tor 是一个严格的 SOCKS-only 代理(端口 9050),因此它拒绝所有非 SOCKS 流量(例如 HTTP) . 要处理非 SOCKS 流量,您需要使用 Privoxy(端口 8118)或 Polipo(端口 8123)将流量转换为 SOCKS,以便 Tor 接受。

Privoxy 更适合隐私,而 Polipo 更适合性能,因为它会缓存。”

所以这不会让我到任何地方,经过一番搜索后我发现了这个Python urllib over TOR?

我下载了socksipy,并尝试了代码。它有效,但我得到了和这个人一样的错误。他的问题没有公认的答案。这篇文章是 2011 年的,我认为我试图澄清一个新问题。

或者,是否有一个很好的库来处理 Tor?

【问题讨论】:

【参考方案1】:

是的,我们有几个 Python 库用于处理 Tor,最常见的是 stem 和 txtorcon。有关此类客户端使用的教程,请参阅here。

【讨论】:

【参考方案2】:

好的,这是我使用的解决方案;

我下载了这个 - http://pastie.org/6002288(不记得来源,但如果你需要的话,你可能可以找到它的信息)

我运行它

现在我更改了我的计算机的设置,以强制任何 dns 解析在端口 53 上本地通过我的代理名称服务器。它将它中继到 tor。

这就解决了,现在我可以运行以下代码,知道我是安全的!

import socks
import socket
def create_connection(address, timeout=None, source_address=None):
    sock = socks.socksocket()
    sock.connect(address)
    return sock

socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 9050)

# patch the socket module
socket.socket = socks.socksocket
socket.create_connection = create_connection


import urllib

url = "http://www.google.com"
urllib.urlopen(url)

Tor 仍然告诉我它只接收 IP 地址,而不是 url,我可能会泄露信息。但我肯定不是,因为 DNS 查找正在通过我的本地代理,该代理通过 Tor。

【讨论】:

以上是关于集成tor和python的主要内容,如果未能解决你的问题,请参考以下文章

如何集成 Microsoft Authenticator

无法将离子与电容器集成,npm 抛出错误

将奏鸣曲媒体与奏鸣曲格式化程序ckeditor集成的图像限制文件大小

python 集成开发环境哪个好

python集成开发环境都有哪些

python 集成开发环境哪个好