使用Python连接到Tor上的.onion网站吗?

发布于 2021-01-29 14:57:24

这是我到目前为止的代码

import socks
import socket
import requests
import json

socks.setdefaultproxy(proxy_type=socks.PROXY_TYPE_SOCKS5, addr="127.0.0.1", port=9050)
socket.socket = socks.socksocket

data = json.loads(requests.get("http://freegeoip.net/json/").text)

而且效果很好。问题是当我使用.onion网址时显示错误

无法建立新连接:[Errno -2]名称或服务未知

经过一番研究后,我发现尽管通过tor决议提出了http请求,但仍然在clearnet上出现。什么是正确的方法,这样我也可以通过网络解析域以连接到.onionurl?

关注者
0
被浏览
57
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    尽可能避免猴子打补丁。如果您使用的是现代版本的请求,那么您应该已经具有此功能。

    import requests
    import json
    
    proxies = {
        'http': 'socks5h://127.0.0.1:9050',
        'https': 'socks5h://127.0.0.1:9050'
    }
    
    data = requests.get("http://altaddresswcxlld.onion",proxies=proxies).text
    
    print(data)
    

    使用该socks5h://方案指定代理很重要,以便可以通过SOCKS处理DNS解析,以便Tor可以.onion正确解析地址。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看