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 實際上並沒有額外的作用! 第一種的簡潔寫法已經可以使用!