从Web服务器读取gz文件时模拟浏览器的行为

时间:2012-08-30 11:57:28

标签: python compression webserver gz

我正在尝试通过python脚本从Web服务器读取gz文件。源文件的大小为60Mb或更多。我不想等待读取整个文件以解压缩并读取内容。相反,当我收到几个字节时,我想要解压缩信息。 我试过这样做,但是我被“CRC check failed”之类的错误所关闭。我正在使用gzip模块,因为服务器将内容编码作为“gzip”返回。我也试过zlib的运气,但没有结果。 我已经看到Mozilla Firefox或谷歌Chrome没有任何问题。我看了HTTP标头,我发现内容没有一次全部收到,但浏览器能够在收到时显示解压缩的部分数据。他们是如何做到的呢 ?任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

zlib.decompressobjwbits参数一起使用31.然后deobj.decompress()将允许您一次解压缩gzip输入。

31并不意味着31位。它实际上是15 + 16,其中15表示2 ^ 15字节的滑动窗口的最大大小,16是请求gzip格式解码的选项。如果不添加16,将解码zlib格式,这将拒绝gzip输入。