我正在使用urllib.request。如果我将Accept-Encoding设置为gizp, deflate,则返回的数据是压缩流,这样可以节省60%到80%的流量。是否有自动解压缩数据的选项,还是必须由我自己处理?如果是后者,应该使用哪些适当的工具?
发布于 2015-07-16 11:27:28
我建议从urllib切换到requests。它会自动handles gziped data。
举个例子:
>>> r = requests.get('https://api.github.com/events')
>>> r.text
u'[{"id":"2978193412","type":"PushEvent","actor":{"id":13182197,"login":"ClothoWong","gravatar_id":"","url":"https://api.github.com/users/...(为简洁起见,请将其剪裁)
上面,你看到了一些漂亮的JSON,但它实际上是使用GZIP编码下载的:
>>> r.raw.getheaders()['Content-Encoding']
'gzip'(您还可以通过您最喜欢的浏览器开发工具确认端点使用gzip编码进行响应。)
在我看来,与urllib相比,requests是一个更好的选择。你最终会得到更少、更简单的代码来做同样的事情。
https://stackoverflow.com/questions/31444710
复制相似问题