如何在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内容。
