Я хочу проанализировать сайт лука с помощью python, придумал этот код:
import requests
proxies = {
'http': 'socks5://localhost:9150',
'https': 'socks5://localhost:9150'
}
url = 'http://sblib3fk2gryb46d.onion'
print(requests.get(url, proxies=proxies).text)
Дает мне ошибку:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/socks.py", line 851, in connect
negotiate(self, dest_addr, dest_port)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/socks.py", line 497, in _negotiate_SOCKS5
self, CONNECT, dest_addr)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/socks.py", line 565, in _SOCKS5_request
resolved = self._write_SOCKS5_address(dst, writer)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/socks.py", line 621, in _write_SOCKS5_address
socket.AI_ADDRCONFIG)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/socket.py", line 743, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno 8] nodename nor servname provided, or not known
Работает отлично с сайтами clearnet. Tor открыт, я использую mac os. Я пробовал несколько различных вариантов, это единственный, который работает до сих пор (по крайней мере, мне удалось подключиться через tor к clearnet)
Может, кто-то раньше так и делал что-то вроде этого?
Чтобы разрешить DNS, а также иметь возможность подключения к адресам.onion, вам необходимо использовать протокол socks5h
для запроса запросов на разрешение DNS поверх Tor. Пример выше - это просто socks5
что означает, что он пытается использовать ваш обычный DNS-реверсор для разрешения адреса.onion, который не будет работать.
Чтобы исправить, измените свои proxies
на:
proxies = {
'http': 'socks5h://localhost:9150',
'https': 'socks5h://localhost:9150'
}
Кроме того, для будущих читателей порт 9150 используется пакетом браузера Tor. Для использования демона Tor попробуйте порт 9050.