¿Conectar con los sitios web .onion en tor usando python?

Aquí está el código que tengo hasta ahora

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) 

y funciona bien. El problema es que cuando uso un .onion url se muestra un error

Error al establecer una nueva conexión: [Errno -2] Nombre o servicio desconocido

Después de investigar un poco, descubrí que, aunque la solicitud http se realiza sobre la resolución, todavía existe sobre clearnet. ¿Cuál es la forma correcta para que también pueda resolver el dominio a través de la red tor para conectarme a las URL de .onion ?

Trate de evitar el parche de mono si es posible. Si está utilizando una versión moderna de las solicitudes, ya debería tener esta funcionalidad.

 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) 

Es importante especificar los proxies usando el esquema socks5h:// para que la resolución de DNS se maneje sobre SOCKS para que Tor pueda resolver la dirección .onion correctamente.