Python的urllib3軟體包詳解

2021-08-01 21:42:57 字數 2997 閱讀 9187

urllib3是一款python 3的http客戶端。

python標準庫提供了urllib。在python 2中,另外提供了urllib2;而在python 3中,重構了urllib和urllib2到標準庫urllib,並另外提供了urllib3。

1. urllib3的特性

2. 安裝

urllib3不是python 3的標準庫,要使用需要另外安裝,pip命令如下:

pip install urllib3
3. 用法

1) http get請求

...注意:任何http請求,只有通過poolmanager物件發出,才能夠提供連線緩衝池和執行緒安全特性。

任何請求的返回物件都是httpresponse物件,其中包含status, data和headers三個屬性。

2) http post請求

...3) json響應的處理

注意:使用json的loads()方法

4) 流式響應的處理

...>>> r.release_conn()注意:preload_content

=false表示流式處理響應資料。

處理stream()方法讀取響應資料之外,還可以使用read()方法,示例如下:

>>> r.release_conn()5) 請求帶引數

>>> r = http.request('get', '', fields=, headers=)
對於post和put方法,需要將引數編碼後,這樣才可以追加到url,示例如下:

>>> from urllib.parse import urlencode

>>> encoded_args = urlencode()

>>> url = '?' + encoded_args

>>> r = http.request('post', url)

當然,最好還是以fields引數形式,urllib3將自動編碼,示例如下:

>>> r = http.request('post', '', fields=)
使用json模組,還可以以body形式傳送請求引數,示例如下:

>>> import json

>>> data =

>>> encoded_data = json.dumps(data).encode('utf-8')

>>> json.loads(r.data.decode('utf-8'))['json']

6) 上傳檔案

文字檔案

注意:上傳檔案必須使用post方法。

二進位制檔案

urllib3訪問HTTPS超時

使用urlilib3訪問 https的 如果不加上urllib3.disable warnings這一句的控制台會一直輸出warning,warning裡面也有官方的提供urllib3出錯的各種解決方法。這裡遇到的問題是執行上述的 會一直請求超時,即便是按照官方提供的各種證書驗證方法也沒用。最後我發...

python爬蟲之urllib3的使用示例

urllib3是乙個功能強大,條理清晰,用於http客戶端的python庫。許多python的原生系統已經開始使用urllib3。urllib3提供了很多python標準庫urllib裡所沒有的重要特性 一 get請求 urllib3主要使用連線池進行網路請求的訪問,所以訪問之前我們需要建立乙個連線...

Python3中urllib的改變

python2中的urllib模組,在python3中被修改為 urllib.request extensible library for opening urls urllib.response response classes used by urllib urllib.parse parse ...