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'})的html
'username:psw@IP:port' 沒有添加「http://」, 可是效果相同!
HTTPHandler 因此 以下的寫法中
2. urllib2的opener中的 handler 默認值當中,已經有
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 實際上並無額外的做用! 第一種的簡潔寫法已經可使用!python