Как получить доступ к веб-сайту с Python через Tor, успешно? порты 8118 и 9050 не работают? - PullRequest
2 голосов
/ 21 августа 2011

Я пытаюсь зайти на сайт с python через tor, но у меня проблемы. Я начал свои попытки с этой темы и той, на которую ссылается: Как делать запросы urllib2 через Tor в Python?

Сначала я попробовал оригинальный фрагмент кода:

import urllib2
proxy_handler = urllib2.ProxyHandler({"tcp":"http://127.0.0.1:9050"})
opener = urllib2.build_opener(proxy_handler)
urllib2.install_opener(opener)

затем я попробовал модифицированный код, размещенный в одном из ответов, который, по словам людей, работал на них. К сожалению, код работает так, что он загружает страницу, но он не работает, потому что мой IP-адрес все тот же:

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

У меня настроен TOR в стандартной конфигурации, согласно соответствующей документации сайтов Ubuntu и TOR, и nmap показывает tcp-прокси TOR, работающий на порту 9050: 9050/tcp open tor-socks Однако мой IP-адрес не изменяется при запуске из приведенных выше сценариев. Python не учитывает переменные среды http, или я пропускаю проблему с кодом?

1 Ответ

2 голосов
/ 21 августа 2011

TOR предоставляет прокси SOCKS.Поскольку urllib2 может обрабатывать только HTTP-прокси, вам придется использовать реализацию SOCKS .

...