Прокси, кажется, игнорируется Mechanize?

Я использую http-прокси и модуль Mechanize. Я инициализирую объект механизации и устанавливаю прокси-сервер следующим образом:

self.br = mechanize.Browser()
self.br.set_proxies({"http": proxyAddress})   #proxy address is like 1.1.1.1:8080

Затем я открываю сайт так:

response = self.br.open("http://google.com")

Моя проблема в том, что mechanize полностью игнорирует прокси. Если я отлаживаю и проверяю объект br, под обработчиком прокси я могу увидеть свои настройки прокси. Однако, даже если я даю плохой прокси, Mechanize просто занимается своими делами, как будто я никогда не устанавливал прокси. Что дает?

редактировать: я также пробовал:

mechanize.install_opener(mechanize.build_opener(mechanize.ProxyHandler({'http': "127.0.0.1:99"})))
response = mechanize.urlopen("http://google.com")

И, похоже, он тоже игнорирует мой прокси. (Я даже не дал ему действительный прокси, разве он не должен терпеть ошибку URLError?)


person Wes    schedule 19.01.2011    source источник
comment
У кого-нибудь есть идея? Я тоже писал в рассылку, но ответа пока не получил.   -  person Wes    schedule 22.01.2011


Ответы (2)


Выяснил это после разговора по списку адресов электронной почты:

import mechanize
browser = mechanize.Browser()
browser.set_proxies(proxies={"http": "myproxy.example.com:1234"},
                proxy_bypass=lambda hostname: False)
person Wes    schedule 16.02.2011

Если вы пытаетесь получить доступ к сайту https, установите прокси-сервер как https, как следует br = mechanize.Browser()

    # Cookie Jar
    cj = cookielib.LWPCookieJar()
    br.set_cookiejar(cj)

    # Browser options
    br.set_handle_equiv(True)
    br.set_handle_gzip(True)
    br.set_handle_redirect(True)
    br.set_handle_referer(True)
    br.set_handle_robots(False)

    # Follows refresh 0 but not hangs on refresh > 0
    br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)

    # Want debugging messages?
    #br.set_debug_http(True)
    #br.set_debug_redirects(True)
    #br.set_debug_responses(True)

    # User-Agent (this is cheating, ok?)
    br.addheaders = [('User-agent', 'Mozilla/4.0 (Compatible; MSIE 8.0; Windows NT 5.2; Trident/6.0)')]

    br.set_proxies({"https": "XXX.XX.246.56:33835"})
person krishna chandak    schedule 28.03.2019