我目前使用以下代码通过urllib2解压缩gzip响应:
opener = urllib2.build_opener()
response = opener.open(req)
data = response.read()
if response.headers.get('content-encoding', '') == 'gzip':
data = StringIO.StringIO(data)
gzipper = gzip.GzipFile(fileobj=data)
html = gzipper.read()
它是否也处理压缩响应,或者我需要编写单独的代码来处理压缩响应?
为了回答上述评论,HTTP规范(http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.3)说:
我认为这意味着它应该使用身份。我从来没有见过一个服务器没有
你可以试试
如果失败了,这里有另一种方法,我在requests source code中找到它
有一个更好的方法概述如下:
作者解释了如何逐块解压,而不是在内存中同时解压。当涉及较大的文件时,这是首选方法。
也找到了这个有用的测试站点:
相关问题 更多 >
编程相关推荐