urllib2自定義opener詳解
urllib2.urlopen()函數(shù)不支持驗(yàn)證、cookie或者其它HTTP高級(jí)功能。要支持這些功能,必須使用build_opener()函數(shù)創(chuàng)建自定義Opener對(duì)象。
build_opener([handler1 [ handler2, ... ]])
參數(shù)handler是Handler實(shí)例,常用的有HTTPBasicAuthHandler、HTTPCookieProcessor、ProxyHandler等。
build_opener ()返回的對(duì)象具有open()方法,與urlopen()函數(shù)的功能相同。
如果要修改http報(bào)頭,可以用:
import urllib2
opener = urllib2.build_opener()
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
opener.open('http://www.example.com/')
2. install_opener(opener)
安裝不同的opener對(duì)象作為urlopen()使用的全局opener。
3. 密碼驗(yàn)證(HTTPBasicAuthHandler)
HTTPBasicAuthHandler()處理程序可用add_password()來(lái)設(shè)置密碼。
h.add_password(realm,uri,user,passwd)
realm是與驗(yàn)證相關(guān)聯(lián)的名稱或描述信息,取決于遠(yuǎn)程服務(wù)器。uri是基URL。user和passwd分別指定用戶名和密碼。
import urllib2
auth=urllib2.HTTPBasicAuthHandler()
auth.add_password('Administrator','http://www.example.com','Dave','123456')
opener=urllib2.build_opener(auth)
u=opener.open('http://www.example.com/evilplan.html')
4. Cookie處理(HTTPCookieProcessor)
import urllib2,cookielib
cookie=cookielib.CookieJar()
cookiehand=urllib2.HTTPCookieProcessor(cookie)
opener=urllib2.build_opener(cookiehand)
5.代理(ProxyHandler)
ProxyHandler(proxies)參數(shù)proxies是一個(gè)字典,將協(xié)議名稱(http,ftp)等映射到相應(yīng)代理服務(wù)器的URL。
proxy=ProxyHandler({'http':'http://someproxy.com:8080'})
auth=HTTPBasicAuthHandler()
auth.add_password()
opener=build_opener(auth,proxy)
也可以在urlopen中使用代理
import urllib2
proxy = 'http://%s:%s@%s' % ('userName', 'password', 'proxy')
inforMation = urllib2.urlopen("http://www.example.com", proxies={'http':proxy})
- python中使用urllib2獲取http請(qǐng)求狀態(tài)碼的代碼例子
- Python中使用urllib2防止302跳轉(zhuǎn)的代碼例子
- python中使用urllib2偽造HTTP報(bào)頭的2個(gè)方法
- python通過(guò)urllib2爬網(wǎng)頁(yè)上種子下載示例
- python網(wǎng)頁(yè)請(qǐng)求urllib2模塊簡(jiǎn)單封裝代碼
- python使用urllib2模塊獲取gravatar頭像實(shí)例
- python33 urllib2使用方法細(xì)節(jié)講解
- Python使用urllib2獲取網(wǎng)絡(luò)資源實(shí)例講解
- Python庫(kù)urllib與urllib2主要區(qū)別分析
相關(guān)文章
Pandas.DataFrame時(shí)間序列數(shù)據(jù)處理的實(shí)現(xiàn)
本文主要介紹了Pandas.DataFrame時(shí)間序列數(shù)據(jù)處理的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02Python 生成器,迭代,yield關(guān)鍵字,send()傳參給yield語(yǔ)句操作示例
這篇文章主要介紹了Python 生成器,迭代,yield關(guān)鍵字,send()傳參給yield語(yǔ)句操作,結(jié)合實(shí)例形式分析了Python生成器、迭代、yield關(guān)鍵字及異常處理相關(guān)操作技巧,需要的朋友可以參考下2019-10-10手把手教會(huì)你雙目攝像頭Matlab參數(shù)定標(biāo)
雙目標(biāo)定是立體視覺(jué)系統(tǒng)中的一個(gè)關(guān)鍵步驟,下面這篇文章主要給大家介紹了關(guān)于雙目攝像頭Matlab參數(shù)定標(biāo)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07python中實(shí)現(xiàn)數(shù)組和列表讀取一列的方法
下面小編就為大家分享一篇python中實(shí)現(xiàn)數(shù)組和列表讀取一列的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04TensorFlow中tf.batch_matmul()的用法
這篇文章主要介紹了TensorFlow中tf.batch_matmul()的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06Matplotlib繪圖基礎(chǔ)之配置參數(shù)詳解
Matplotlib?提供了大量配置參數(shù),這些參數(shù)可以但不限于讓我們從整體上調(diào)整通過(guò)?Matplotlib?繪制的圖形樣式,下面我們就來(lái)看看如何巧妙的運(yùn)用這些參數(shù)吧2023-08-08