📚 Requests 庫安裝與使用指南
Requests 是一個功能強大且易於使用的Python HTTP庫,廣泛應用於發送各種HTTP請求,如GET、POST等。以下內容將詳細介紹 Requests 庫的安裝和使用方法,幫助您高效地在Python中進行HTTP操作。🚀
🛠️ 安裝 Requests 庫
要使用 Requests 庫,首先需要確保已安裝 pip 工具。然後,在終端或命令行中運行以下命令進行安裝:
pip install requests
解釋:
pip install requests:使用 pip 包管理工具從Python包索引中下載並安裝最新版本的 Requests 庫。
📥 導入 Requests 庫
在Python腳本中使用 Requests 庫前,需要先導入該庫:
import requests
解釋:
import requests:將 Requests 庫導入到當前Python腳本中,使其功能可用。
🔍 發送 GET 請求
GET 請求用於從服務器獲取數據。使用 requests.get() 方法發送 GET 請求,並獲取響應內容。
response = requests.get('https://api.example.com/data')
print(response.text) # 輸出響應內容
解釋:
requests.get('https://api.example.com/data'):向指定URL發送 GET 請求。response.text:獲取服務器響應的文本內容,並通過print輸出。
📝 發送 POST 請求
POST 請求用於向服務器提交數據。使用 requests.post() 方法發送 POST 請求,並傳遞數據。
data = {'key': 'value'}
response = requests.post('https://api.example.com/submit', data=data)
print(response.text)
解釋:
data = {'key': 'value'}:定義要發送的數據,鍵值對形式。requests.post('https://api.example.com/submit', data=data):向指定URL發送 POST 請求,並攜帶數據。response.text:獲取服務器響應的文本內容,並通過print輸出。
🧩 添加 Headers
設置請求頭信息,可以自定義請求的元數據。
headers = {'User-Agent': 'MyUserAgent'}
response = requests.get('https://api.example.com/data', headers=headers)
解釋:
headers = {'User-Agent': 'MyUserAgent'}:定義請求頭,User-Agent用於標識客户端類型。requests.get(..., headers=headers):在 GET 請求中添加自定義頭信息。
📊 處理響應
可以獲取響應的狀態碼、頭信息和內容等。
print(response.status_code) # 輸出狀態碼
print(response.headers) # 輸出頭信息
解釋:
response.status_code:獲取HTTP響應狀態碼,如200表示成功。response.headers:獲取響應頭信息,包含服務器返回的元數據。
📦 處理 JSON 響應
如果響應內容為JSON格式,可以使用 .json() 方法解析。
json_data = response.json()
print(json_data)
解釋:
response.json():將JSON格式的響應內容解析為Python字典或列表。print(json_data):輸出解析後的JSON數據。
⚠️ 異常處理
捕獲並處理請求過程中可能發生的異常,確保程序的健壯性。
try:
response = requests.get('https://api.example.com/data')
response.raise_for_status() # 檢查響應狀態,如果不是200會拋出異常
except requests.exceptions.RequestException as e:
print("Request error:", e)
解釋:
try...except結構:嘗試執行請求,若發生異常則捕獲並處理。response.raise_for_status():檢查HTTP響應狀態,非200狀態將拋出異常。requests.exceptions.RequestException:捕獲所有與請求相關的異常。
🔧 附加參數
可以傳遞查詢參數、設置超時等其他參數,以滿足更復雜的需求。
params = {'key1': 'value1', 'key2': 'value2'}
response = requests.get('https://api.example.com/data', params=params, timeout=10)
print(response.url) # 輸出最終請求的URL
解釋:
params = {'key1': 'value1', 'key2': 'value2'}:定義查詢參數,將自動附加到URL中。timeout=10:設置請求超時時間為10秒,避免長時間等待。response.url:獲取最終生成的請求URL。
🔄 會話管理
使用會話(Session)可以保持狀態和管理Cookies,適用於需要多次請求同一會話的場景。
session = requests.Session()
response = session.get('https://api.example.com/login')
# 後續請求會保持相同的會話信息和Cookie
response = session.get('https://api.example.com/dashboard')
print(response.text)
解釋:
requests.Session():創建一個會話對象,自動處理Cookies和連接池。session.get(...):通過會話發送請求,保持會話狀態。- 後續請求將共享會話中的狀態信息,如登錄狀態。
📥 文件下載
可以使用 Requests 下載文件並保存到本地。
response = requests.get('https://example.com/file.pdf')
with open('file.pdf', 'wb') as f:
f.write(response.content)
解釋:
requests.get('https://example.com/file.pdf'):發送 GET 請求下載文件。open('file.pdf', 'wb'):以二進制寫模式打開本地文件。f.write(response.content):將下載的文件內容寫入本地文件。
📋 分析説明表
以下表格總結了 Requests 庫的關鍵功能及其用途:
| 功能 | 描述 | 示例 |
|---|---|---|
| 安裝 | 使用pip安裝Requests庫 | pip install requests |
| 導入 | 在腳本中導入Requests庫 | import requests |
| 發送GET請求 | 獲取服務器數據 | requests.get('https://api.example.com') |
| 發送POST請求 | 向服務器提交數據 | requests.post(url, data=data) |
| 添加Headers | 設置自定義請求頭 | headers = {'User-Agent': 'MyAgent'} |
| 處理響應 | 獲取狀態碼、頭信息和內容 | response.status_code, response.text |
| 處理JSON響應 | 解析JSON格式的響應內容 | response.json() |
| 異常處理 | 捕獲和處理請求異常 | try...except |
| 附加參數 | 傳遞查詢參數和設置超時 | params=params, timeout=10 |
| 會話管理 | 保持會話狀態和管理Cookies | session = requests.Session() |
| 文件下載 | 下載並保存文件到本地 | open('file.pdf', 'wb').write(response.content) |
🧠 工作流程示意圖
解釋:此流程圖展示了使用 Requests 庫的基本步驟,從導入庫到發送請求,再到處理響應和異常,最終輸出結果。
🎯 關鍵要點總結
- 安裝與導入:通過
pip安裝並在腳本中導入 Requests 庫。 - 發送請求:靈活使用
get和post方法進行數據獲取和提交。 - 自定義請求:通過Headers、參數和會話管理,實現更復雜的請求需求。
- 響應處理:有效解析響應內容,處理不同格式的數據,並管理異常情況。
- 文件操作:輕鬆實現文件的下載與保存。
通過掌握以上內容,您可以充分利用 Requests 庫的強大功能,簡化HTTP操作,提高開發效率。持續實踐和深入學習將進一步提升您的Python網絡編程能力。💪