在Python中,使用requests庫進行數據壓縮非常簡單。當你在發送請求時,可以通過設置headers中的Accept-Encoding字段來指定你希望使用的壓縮格式。以下是一個簡單的示例,展示了如何使用requests庫發送一個帶有gzip壓縮的GET請求:
import requests
url = "https://example.com"
headers = {
"Accept-Encoding": "gzip, deflate"
}
response = requests.get(url, headers=headers)
if response.status_code == 200:
# 如果服務器返回的數據是gzip壓縮的,requests會自動解壓
data = response.content
else:
print("請求失敗,狀態碼:", response.status_code)
在這個示例中,我們將Accept-Encoding設置為gzip, deflate,這意味著我們希望服務器返回的數據可以是gzip或deflate壓縮格式。當服務器返回數據時,requests會自動檢測并使用相應的解壓縮算法進行解壓縮。
如果你需要手動處理壓縮數據,可以使用gzip模塊。以下是一個簡單的示例,展示了如何使用gzip模塊解壓縮服務器返回的gzip壓縮數據:
import requests
import gzip
url = "https://example.com"
headers = {
"Accept-Encoding": "gzip"
}
response = requests.get(url, headers=headers)
if response.status_code == 200:
# 如果服務器返回的數據是gzip壓縮的,我們需要手動解壓縮
if "gzip" in response.headers.get("Content-Encoding", ""):
with gzip.open(response.raw, "rb") as f_in:
data = f_in.read()
else:
data = response.content
else:
print("請求失敗,狀態碼:", response.status_code)
在這個示例中,我們首先檢查響應頭中的Content-Encoding字段,以確定數據是否被壓縮。如果數據是gzip壓縮的,我們使用gzip.open()函數以二進制讀取模式打開數據,并讀取解壓縮后的內容。