Python3---標准庫---urllib


前言

該文章主要說明Python3 標准庫urllib的使用。

修改時間:20191216

修改時間:20191217

修改時間:20191218

添加urllib.parse.urlencode,urllib.request.Request方法解釋

天象獨行

0X01;urllib作用是什么?

  urllib是Python3的一個內置標准庫,主要用來進行http請求。其中主要包含四個常見模塊。分別是:request,error,parse,robotparser。request模塊功能提供一個基本的請求功能,來模擬http請求。error異常處理模塊,主要功能是在出現錯誤的時候可以捕獲異常。parse工具模塊,提供了URL處理的方法,比如:拆分,解析,合並等。robotparser模塊主要用來識別網站的robots.txt文件。

0X02;urllib.request模塊

  urllib.request模塊當中常見使用方法有:

  A;urlopen(url,data,timeout) 作用打開一個url方法,返回一個文件對象HttpResponse,然后可以進行類似文件對象的操作。

例如:基本使用方法。

 

 

   B;urllib.request.urlretrieve(url,filename=None,reporthook=None,data=None)作用下載定制的url內容到本地。

  url:外部或者本地url。

  filename:指定了保存到本地的路徑(如果未指定該參數,urllib會生成一個臨時文件來保存數據)。

  reporthook:是一個回調函數,當連接上服務器,以及相應的數據塊傳輸完畢的時候會觸發該回調

  data:指post到服務器的數據。該方法返回一個包含兩個元素的元組(filename,headers),filename表示保存到本地的路徑,header表示服務器的響應頭。

  基本使用:

  C;Request()方法作用是發送一個請求,常見操作是構建HTTP請求。

舉例:構建請求頭:

 

 

 

 

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解碼

舉例:

  

  I;urlencode(data)作用針對一個字典data,將字典編碼處理並且拼接為query_string。

舉例:

 

 

 

 

0X0X;補充說明:

  A;HttpRequest類是一個封閉HTTP提交信息的類型,而封閉HTTP輸出信息的類型就是HttpResponse類,使用HttpResponse類可以實現三種類型的輸出,即文本,URL,二進制流.HTTPResposne 類型的對象,它主要包含的方法有 read()、readinto(),getheader(name)、getheaders()、fileno() 等方法和 msg、version、status、reason、debuglevel、closed 等屬性。

  read() 讀取相應內容,內容是字節類型

  geturl() 獲取請求url

  getheaders() 獲取請求頭信息,列表里面有元組

  getcode() 獲取狀態碼

  readlines() 按行讀取,返回列表,都是字節類型

詳情參考下面鏈接:https://www.iteye.com/blog/guoying252166655-2041373

  B;try...except 在程序出現異常處理是使用。格式 try: 執行代碼 except:發生異常時執行的代碼。詳情參考下面鏈接:https://www.runoob.com/python3/python3-errors-execptions.html

  C;__main__是Python的內置變量,用於代指當前模塊。詳細參考下面鏈接:https://www.cnblogs.com/chenhuabin/p/10118199.html

  D;字典是另一種可變容器模型,且可存儲任意類型的對象。

  E;列表是最常見的Python數據類型,它可以作為一個方括號內的逗號分隔值出現。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM