温馨提示×

python爬虫request如何进行数据压缩

小樊
81
2024-12-07 15:22:44
栏目: 编程语言

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

0