Как НЕ использовать прокси с Python Mechanize

В настоящее время я использую Python + Mechanize для получения страниц с локального сервера. Как видите, код использует «localhost» в качестве прокси. Прокси-сервер — это экземпляр прокси-сервера отладки Fiddler2. Это работает именно так, как ожидалось. Это указывает на то, что моя машина может получить доступ к test_box.

import time
import mechanize

url = r'http://test_box.test_domain.com:8000/helloWorldTest.html'
browser = mechanize.Browser();
browser.set_proxies({"http": "127.0.0.1:8888"})
browser.add_password(url, "test", "test1234")

start_timer = time.time()

resp = browser.open(url)
resp.read()

latency = time.time() - start_timer

Однако, когда я удаляю инструкцию browser.set_proxyes, она перестает работать. Я получаю сообщение об ошибке ‹"ошибка urlopen [Errno 10061] Не удалось установить соединение, так как целевая машина активно отклоняла его>". Дело в том, что я могу получить доступ к test_box со своей машины с помощью любого браузера. Это также указывает на то, что с моей машины можно получить доступ к test_box.

Я подозреваю, что это как-то связано с тем, что Mechanize пытается угадать правильные настройки прокси. То есть: мои браузеры настроены на переход к веб-прокси для любого домена, кроме test_domain.com. Поэтому я подозреваю, что mechanize пытается использовать веб-прокси, хотя на самом деле он не должен использовать прокси.

Как я могу заставить mechanize НЕ угадывать какие-либо настройки прокси-сервера, а вместо этого заставить его пытаться подключиться напрямую к test_box?


person Udo Klein    schedule 06.03.2013    source источник


Ответы (1)


Аргх, сам нашел. Строка документации говорит:

«Чтобы избежать любого использования прокси, передайте пустой прокси-дикт».

Это решило проблему.

person Udo Klein    schedule 06.03.2013