Как маршрутизировать запросы urllib через сеть TOR?

Asked
Viewd9900

13

Как маршрутизировать запросы urllib через сеть TOR?

  • @Lobe: Tor анонимизирует ваши запросы - он скрывает вас от веб-сайта. Он ничего не делает с основным методом выполнения HTTP-запросов, поэтому документации нет. Ничего не меняется, за исключением того, что вы анонимны.

    S.Lott02 апреля 2009, 20:24
  • Что вы пробовали? Техническое задание должно быть в значительной степени прозрачным для вас. Попробуйте использовать urllib2; опубликуйте свой код и сообщения об ошибках.

    S.Lott02 апреля 2009, 19:59
  • У меня нет кода или сообщений об ошибках - я спрашиваю, как это сделать.

    Lobe02 апреля 2009, 20:04

3 ответов

6

Tor работает как прокси? Поэтому спросите себя: «Как мне использовать прокси в urllib?»

Теперь, когда я просматриваю документы, первое, что я вижу, это

 urllib.urlopen(url[, data[, proxies]])
 

что мне кажется довольно многообещающим ...

  • Да, Privoxy и Polipo используют 8118 в качестве порта по умолчанию.

    jahmax24 июля 2010, 01:21
  • Я пробовал, но ничего не вышло: »> Urllib.urlopen (‘ http: //www.google.com’,proxies= {‘http’: ’http: //127.0.0.1: 9051’}) _.Read ()

    Lobe03 апреля 2009, 21:30
  • Нет, TOR по умолчанию работает на 9050, 9051 - контрольный, а 8118 - для некоторых дополнительных прокси-серверов, способствующих конфиденциальности (отредактируйте: я думаю, privoxy).

    Thomas M. DuBuisson24 июля 2010, 01:16
  • Разве tor не работает на 127.0.0.1:8118? Думаю, 9051 - это порт управления.

    jahmax24 июля 2010, 01:03
  • Но Tor работает для вас из других приложений? Можете ли вы использовать любые прокси с liburl?

    dmckee --- ex-moderator kitten04 апреля 2009, 02:15
12

Это работает для меня (использую urllib2, не пробовал urllib):

 def req(url):
    proxy_support = urllib2.ProxyHandler({"http" : "127.0.0.1:8118"})
    opener = urllib2.build_opener(proxy_support) 
    opener.addheaders = [('User-agent', 'Mozilla/5.0')]
    return opener.open(url).read()

print req('http://google.com')