欢迎访问宙启技术站
智能推送

如何在Python中使用gzip模块来判断HTML响应是否压缩过

发布时间:2023-12-17 15:50:16

在Python中可以使用gzip模块来判断HTML响应是否经过压缩。gzip模块提供了对gzip格式文件的压缩和解压缩功能。下面是使用gzip模块判断HTML响应是否压缩过的示例:

import requests
import gzip
from io import BytesIO

# 发送HTTP请求获取HTML响应
response = requests.get('http://example.com')

# 判断响应是否经过压缩
if response.headers.get('Content-Encoding') == 'gzip':
    # 如果响应已经压缩,则解压缩响应内容
    compressed_data = response.content
    compressed_stream = BytesIO(compressed_data)
    gzipper = gzip.GzipFile(fileobj=compressed_stream)
    decompressed_data = gzipper.read()
    # 将解压缩后的数据转换为字符串类型
    html = decompressed_data.decode('utf-8')
else:
    # 如果响应未压缩,则直接将响应内容转换为字符串类型
    html = response.text

# 打印HTML内容
print(html)

以上代码使用requests库发送HTTP请求,获取返回的HTML响应。然后通过判断响应头中的Content-Encoding字段是否为gzip来判断响应是否经过压缩。如果响应已经压缩,则使用gzip模块对压缩数据进行解压缩;如果响应未压缩,则直接将响应内容转换为字符串类型。

在解压缩过程中,首先将压缩数据转换为BytesIO对象,然后使用gzip模块的GzipFile类进行解压缩操作。最后将解压缩后的数据转换为字符串类型。

通过以上代码,可以判断HTML响应是否经过压缩,并获取解压缩后的HTML内容。