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 ...