前言html
該文章主要說明Python3 標準庫urllib的使用。python
修改時間:20191216服務器
修改時間:20191217函數
天象獨行工具
0X01;urllib做用是什麼?post
urllib是Python3的一個內置標準庫,主要用來進行http請求。其中主要包含四個常見模塊。分別是:request,error,parse,robotparser。request模塊功能提供一個基本的請求功能,來模擬http請求。error異常處理模塊,主要功能是在出現錯誤的時候能夠捕獲異常。parse工具模塊,提供了URL處理的方法,好比:拆分,解析,合併等。robotparser模塊主要用來識別網站的robots.txt文件。網站
0X02;urllib.request模塊
編碼
urllib.request模塊當中常見使用方法有:url
A;urlopen(url,data,timeout) 做用打開一個url方法,返回一個文件對象HttpResponse,而後能夠進行相似文件對象的操做。spa
例如:基本使用方法。
B;urllib.request.urlretrieve(url,filename=None,reporthook=None,data=None)做用下載定製的url內容到本地。
url:外部或者本地url。
filename:指定了保存到本地的路徑(若是未指定該參數,urllib會生成一個臨時文件來保存數據)。
reporthook:是一個回調函數,當鏈接上服務器,以及相應的數據塊傳輸完畢的時候會觸發該回調
data:指post到服務器的數據。該方法返回一個包含兩個元素的元組(filename,headers),filename表示保存到本地的路徑,header表示服務器的響應頭。
基本使用:
0X03;urllib.error模塊
urllib.error模塊做用是能夠接收urllib.request產生的異常。其中包含了兩個方法。即URLError,HTTPError。
A;URLError舉例
B;HTTPError舉例:
0X04;urllib.parse模塊
A;urlparse()方法做用:將URL分解爲六個組件分別是:協議,位置,路徑,參數,查詢,片斷
舉例:
B;urlsplit方法相似於urlparse,區別在於urlsplit沒有返回「params」
C;urlunparse(parts)方法做用,從urlparse()返回的元組元素構造一個URL。
舉例:
D;urlunsplit方法與urlunparse相似。
E;parse_qs和parse_qsl
urllib.parse.parse_qs返回字典
urllib.parse.parse_qsl返回列表
舉例:
F;urljoin(base,url,allow_fragments=True)做用組合兩個URL.。註釋:url必定須要完整的url。
舉例:
G;quout()方法,做用URL編碼
H;unquote()方法做用url解碼
舉例:
0X0X;補充說明:
A;HttpRequest類是一個封閉HTTP提交信息的類型,而封閉HTTP輸出信息的類型就是HttpResponse類,使用HttpResponse類能夠實現三種類型的輸出,即文本,URL,二進制流.HTTPResposne 類型的對象,它主要包含的方法有 read()、readinto(),getheader(name)、getheaders()、fileno() 等方法和 msg、version、status、reason、debuglevel、closed 等屬性。詳情參考下面連接:https://www.iteye.com/blog/guoying252166655-2041373
B;try...except 在程序出現異常處理是使用。格式 try: 執行代碼 except:發生異常時執行的代碼。詳情參考下面連接:https://www.runoob.com/python3/python3-errors-execptions.html
C;__main__是Python的內置變量,用於代指當前模塊。詳細參考下面連接:http://www.javashuo.com/article/p-kicuomml-x.html
D;字典是另外一種可變容器模型,且可存儲任意類型的對象。
E;列表是最多見的Python數據類型,它能夠做爲一個方括號內的逗號分隔值出現。