gpt4 book ai didi

gzip - 在 Python 3 中解压缩 gzip 服务器响应的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-04 09:06:04 25 4
gpt4 key购买 nike

我原以为这会奏效:

>>> import urllib.request as r
>>> import zlib
>>> r.urlopen( r.Request("http://google.com/search?q=foo", headers={"User-Agent": "Mozilla/5.0 (X11; U; Linux i686) Gecko/20071127 Firefox/2.0.0.11", "Accept-Encoding": "gzip"}) ).read()
b'af0\r\n\x1f\x8b\x08...(long binary string)'
>>> zlib.decompress(_)
Traceback (most recent call last):
File "<pyshell#87>", line 1, in <module>
zlib.decompress(x)
zlib.error: Error -3 while decompressing data: incorrect header check

但事实并非如此。深入 Python uses StringIO在这个例子中,但 Python 3 中似乎没有。正确的做法是什么?

最佳答案

它适用于 gzip (gzip 和 zlib 是相同的压缩,但具有不同的 header /“包装”。您的错误在消息中包含此信息)。

import gzip
import urllib.request

request = urllib.request.Request(
"http://google.com/search?q=foo",
headers={
"Accept-Encoding": "gzip",
"User-Agent": "Mozilla/5.0 (X11; U; Linux i686) Gecko/20071127 Firefox/2.0.0.11",
})
response = urllib.request.urlopen(request)
gzipFile = gzip.GzipFile(fileobj=response)
gzipFile.read()

关于gzip - 在 Python 3 中解压缩 gzip 服务器响应的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/720273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com