2012-11-22 56 views
3

我使用Python 2.7.2和Mechanize 0.2.5。
當我訪問互聯網時,我必須通過代理服務器。我寫了下面的代碼,但在最後一行發生了URLError ..有沒有人有任何解決方案呢?當需要HTTPS和代理驗證時,Python機械化不起作用

import mechanize 

br = mechanize.Browser() 
br.set_debug_http(True) 
br.set_handle_robots(False) 

br.set_proxies({ 
    "http" : "192.168.20.130:8080", 
    "https" : "192.168.20.130:8080",}) 
br.add_proxy_password("username", "password") 

br.open("http://www.google.co.jp/") # OK 
br.open("https://www.google.co.jp/") # Proxy Authentication Required 

回答

3

我不建議你使用機械化,它已經過時了。看看requests吧 讓你的生活變得更輕鬆。使用代理請求它只是這樣的:

import requests 

proxies = { 
    "http": "10.10.1.10:3128", 
    "https": "10.10.1.10:1080", 
} 

requests.get("http://example.org", proxies=proxies) 
+0

非常感謝。我不知道請求模塊。我現在正在嘗試。我如何爲代理驗證指定用戶名和密碼? – yutaka

+0

您需要使用如下代理網址:username:[email protected]:3128 – scripts

+0

謝謝。當然你的方式被基本認證所接受。當代理服務器需要摘要認證時,用戶名和密碼不能嵌入到代理URL中。我嘗試了requests.auth.HTTPProxyAuth,但代理返回了407。 – yutaka