Не удается подключиться к веб-сайту через Python

1

Я хочу проанализировать сайт лука с помощью 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)

Может, кто-то раньше так и делал что-то вроде этого?

Теги:
tor

1 ответ

0

Чтобы разрешить DNS, а также иметь возможность подключения к адресам.onion, вам необходимо использовать протокол socks5h для запроса запросов на разрешение DNS поверх Tor. Пример выше - это просто socks5 что означает, что он пытается использовать ваш обычный DNS-реверсор для разрешения адреса.onion, который не будет работать.

Чтобы исправить, измените свои proxies на:

proxies = {
    'http': 'socks5h://localhost:9150',
    'https': 'socks5h://localhost:9150'
}

Кроме того, для будущих читателей порт 9150 используется пакетом браузера Tor. Для использования демона Tor попробуйте порт 9050.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню