2.4 requests庫的安裝及使用
2.4.1 requests庫概述
requests庫是Python中的一個HTTP網絡請求庫,用來簡化網絡請求。通過對requests庫的引用,便能夠使用其中的成員(方法和屬性),如圖2-8所示。

圖2-8 Requests庫成員
2.4.2 requests庫的安裝
安裝request庫的操作步驟如下。
1)在PyCharm中選擇“File”→“Settings”菜單命令,如圖2-9所示。

圖2-9 選擇“File”→“Settings”菜單命令
2)彈出“Settings”對話框,在左側窗格中依次選擇“Project:pycharmprojects”→“Project Interpreter”選項,然后單擊右上角的“+”按鈕,如圖2-10所示。

圖2-10 “Setting”對話框
3)彈出“Available Packages”對話框,在搜索文本框中輸入“requests”,選擇列表框中出現的“requests”,然后單擊“Install Package”按鈕,如圖2-11所示。

圖2-11 “Available Package”對話框
2.4.3 requests庫的基本用法
1.requests庫的常用方法
(1)request()
requests.request()用于生成一個請求。這是一個總方法,可以通過傳入不同的參數實現不同的目的。
語法:requests.request(method,url,??kwargs)
參數說明:
1)method表示請求方式參數,共7個,分別為GET、POST、HEAD、PUT、PATCH、DELETE。必填。
2)url表示擬獲取頁面的URL鏈接。必填。
3)??kwargs表示可選的控制訪問參數,共13個,分別如下。
● params:字典或字節序列,作為參數增加到url中。
● data:字典、字節序列或文件對象,作為Request的內容。
● json:JSON格式的數據,作為Request的內容。
● headers:設置頭部,字典類型,如{'user-agent':'my-app/0.0.1'}(模擬瀏覽器進行訪問)。
● cookies:設置cookie,字典類型,如{"key":"value"}。
● auth:元組格式的數據。
● files:字典類型,傳輸文件。
● timeout:設置超時時間,以秒(s)為單位。
● proxies:設置代理,字典類型,如{"http":"http://10.10.1.10:8080"}。
● allow_redirects:True或False,默認為True,重定向開關。
● stream:True或False,默認為True,獲取內容立即下載開關。
● verify:True或False,默認為True,認證SSL證書開關。
● cert:本地SSL證書路徑。
【例2-1】使用requests的request()方法以字典數據作為參數獲取github的API數據。

(2)get()
requests.get()是指使用GET方法獲取指定的URL。
語法:requests.get(url,params={},headers={},cookies={},allow redirects=True,timeout=float,proxies={},verify=True)
【例2-2】使用requests的get()方法以字典數據作為參數獲取github的API數據。

(3)post()
requests.post()是指使用POST方法獲取指定URL。以表單形式發送數據時,只需傳遞一個字典數據給data關鍵字,在發送請求的時候,會自動編碼為表單的形式。
語法:requests.post(url,data={},headers={},cookies={},json=' ',files={},allow_redirects=True,timeout=float,proxies={},verify=True)
【例2-3】使用requests的post()方法以字典數據作為參數獲取github的API數據。

(4)head()
requests.head()是指使用HEAD方法獲取頁面的頭部信息。
【例2-4】使用requests的head()方法獲取指定URL的頭部信息。


2.requests庫的對象屬性
1)requests.status_code是指返回狀態碼。
2)requests.text是指返回的頁面內容。
3)requests.encoding是指返回頁面內容使用的可能的編碼方式。如果網頁沒有設置charset的值,就使用默認的編碼格式。
4)requests.apparent_encoding是指返回對頁面內容分析后的編碼方式。
5)requests.content是指以二進制的形式返回response的內容。
3.一個簡單的requests庫實現案例
使用requests庫顯示百度頁面的各屬性值。
1)在Python文件中導入requests庫。

2)使用requests.get()方法獲得指定URL。

3)查看返回的requests對象屬性值。

4)顯示結果如圖2-12所示。

圖2-12 百度頁面的屬性值