在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()
函数以二进制读取模式打开数据,并读取解压缩后的内容。