一.? 簡介
urllib.request.urlopen()函數用于實現對目標url的訪問。
?
函數原型如下:urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)
url:? 需要打開的網址
data:Post提交的數據
timeout:設置網站的訪問超時時間
?
直接用urllib.request模塊的urlopen()獲取頁面,page的數據格式為bytes類型,需要decode()解碼,轉換成str類型。
?
二.? 函數參數介紹
?
1. url 參數:目標資源在網路中的位置。可以是一個表示URL的字符串(如:http://www.pythontab.com/);也可以是一個urllib.request對象,詳細介紹請跳轉
2. data參數:data用來指明發往服務器請求中的額外的參數信息(如:在線翻譯,在線答題等提交的內容),data默認是None,此時以GET方式發送請求;當用戶給出data參數的時候,改為POST方式發送請求。
3. timeout:設置網站的訪問超時時間
4. cafile、capath、cadefault 參數:用于實現可信任的CA證書的HTTP請求。(基本上很少用)
5. context參數:實現SSL加密傳輸。(基本上很少用)
?
三. 返回處理方法詳解
urlopen返回對象提供方法:
read() , readline() ,readlines() , fileno() , close() :對HTTPResponse類型數據進行操作
info():返回HTTPMessage對象,表示遠程服務器返回的頭信息
getcode():返回Http狀態碼。如果是http請求,200請求成功完成;404網址未找到
geturl():返回請求的url
?
四. 版本區別, 注意事項
python2和python3在導入urlrequest的方式都不一樣。?
python2是這樣:import urllib2?
而python3里面把urllib分開了,分成了urlrequest和urlerror,在這里我們只需導入urlrequest即可。from urllib.request import urlopen
?
五. 實例
下面這個程序,實現了urlopen()函數的大部分功能,特別是data參數。data自定義,data格式轉換,數據的編碼encode()和解碼decode()。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
|