1. Python 的 urllib2 設置帶有密碼驗證的代理服務器,簡潔寫法如下:
proxy_handler = urllib2.ProxyHandler({'http': 'username:psw@IP:port'})
opener = urllib2.build_opener(proxy_handler)
urllib2.install_opener(opener)
response = urllib2.urlopen('http://google.com')
html = response.read()
此種寫法中,代理部分urllib2.ProxyHandler({'http': 'username:psw@IP:port'})的
'username:psw@IP:port' 沒有添加“http://”, 但是效果相同!
2. urllib2的opener中的 handler 默認值當中,已經有HTTPHandler 所以 如下的寫法中
import urllib2
proxy_support = urllib2.ProxyHandler({'http':'http://usename:psw@IP:port'})
auth = urllib2.HTTPBasicAuthHandler()
opener = urllib2.build_opener(proxy_support, auth, urllib2.HTTPHandler)
urllib2.install_opener(opener)
response = urllib2.urlopen('http://google.com')
html = response.read()
后面添加的 HTTPBasicAuthHandler, urllib2.HTTPHandler 實際上並沒有額外的作用! 第一種的簡潔寫法已經可以使用!
