在Python 2.6.1支持代理是否urllib2通過https是否urllib2的?在Python 2.6.1支持代理通過HTTPS
我發現在http://www.voidspace.org.uk/python/articles/urllib2.shtml如下:
NOTE
Currently urllib2 does not support fetching of https locations through a proxy. This can be a problem.
我試圖在以網站和下載文件自動登錄,我有有效的用戶名/密碼。
proxy_info = {
'host':"axxx", # commented out the real data
'port':"1234" # commented out the real data
}
proxy_handler = urllib2.ProxyHandler(
{"http" : "http://%(host)s:%(port)s" % proxy_info})
opener = urllib2.build_opener(proxy_handler,
urllib2.HTTPHandler(debuglevel=1),urllib2.HTTPCookieProcessor())
urllib2.install_opener(opener)
fullurl = 'https://correct.url.to.login.page.com/user=a&pswd=b' # example
req1 = urllib2.Request(url=fullurl, headers=headers)
response = urllib2.urlopen(req1)
我已經受夠了工作,類似網頁,但不使用HTTPS,我懷疑它不通過代理獲得 - 它只是卡住以同樣的方式,當我不指定代理。我需要通過代理出去。
我需要驗證,但是不使用基本身份驗證,將urllib2的弄清楚認證通過https網站去當(我通過URL到網站提供的用戶名/密碼)?
編輯: 不,我
proxies = {
"http" : "http://%(host)s:%(port)s" % proxy_info,
"https" : "https://%(host)s:%(port)s" % proxy_info
}
proxy_handler = urllib2.ProxyHandler(proxies)
測試,我得到錯誤:
urllib2.URLError: urlopen error [Errno 8] _ssl.c:480: EOF occurred in violation of protocol
啊哈,我知道了:)讓我試試(順便說一句,我想通了,我需要什麼,捲曲,但仍然會是不錯的它在python運行) – stefanB 2009-06-23 03:04:05
不幸的是加入代理爲「HTTPS」鍵在傳遞給ProxyHandler的字典中,不會解決問題,因爲AFAIK不支持CONNECT HTTP方法。使用PyCurl是最簡單的解決方法,但爲了分發代碼,在PyCurl中缺少Windows支持(或者至少易於安裝)可能是一個很大的障礙。 – Tom 2010-09-22 02:38:30