【问题标题】:Requests issue decoding gzip请求问题解码 gzip
【发布时间】:2015-09-30 15:17:15
【问题描述】:

我正在尝试使用 requests 包从网站中提取大量文本文件,其中一些文件可以直接作为文本使用,而其他文件是压缩文本文件。

tmpHtml = 'https://website.com/csv/pwr/someData.dat.gz'
tmpReq = requests.get(tmpHtml, proxies = proxy_w_auth, auth = (usr, pw))    

当我拉取未压缩的文件时,一切正常,但是当我拉取其中一个压缩文件时,我得到以下很多:

'\x1f\x8b\x08\x08\xe5\xc6\xd9A\x00\x03someData.dat\x00\xa5\x9d\xcbn\x1c\xb9\x19\x85\xf7\x01\xf2\x0e\xfd\x00Q\xa9X,^j\xa9\xc8\x9a\xb1\x9dX\x16dM\x12/\r\x8c\x0712\x19\x0f\xb2\t\x02\xf4\xc3\xa7\xba\xeeM\x9e\x9f<\xa46s\x93\xf1\r\x8b\xfd\x7fl\x9e\xe2E/\xcfwo\x1eNo\xee^\x1e\xceo\x7f\xfa\xf3\xf9\xe9\xf9\xe3\x9b\x9f\xee_\xce\x9f^\x9e\xdf=\x9d\xef?>\xbe<\xdf\x8d\xff\xba\xfe\xc3\xe9\xe5\xf3\xd3\xc3\xf4\xc3\xbf\x8c\x7f{xy\xf9\xeb\xc3\x87\x87\xc7\x97\xd3\xd3\xf3\xbb\xfb\x87\xf3\xe3\xc3\xcb\xe9\xfe\xed\xdd\xe3\x8f\x0f\xe7\x87\x7f<\xbd{\xbe{y\xf7\xf1qb\xff\xf1\x0f\xeaV\xdfvmk\xce\xf7\xdf~;\xff\xf0\xed\xb7\xd3\xa7\xff~\xf9\xfd\xe6\xe9\xeb\x97\x7f\xfd\xe9\xf4\xc3\xd3\xe9\x97\xef\xff9]\x10\xeaV-\x7f\xec\xdd\xe3\xf9\x87\xf3\xb9W\x8d\xf6\xe7\x1b\xd3\xf4n\xfc\x99\x9e\x7fH\xd3\xba\x90f\x1ak\xce7\xbaQ\xe3\x8f:_\x06\xd31ldu\xe3_tq\xc3z\x91\xd5\xdfvC\x19\xcb\x84,\xdd\xb8\x11\xa6\x9a\xce\x8c?+m\x99\ri\xf6\xc2\xb9i\xc7\xa6\xd9[\xdd\x96\xc1\\\x003vn\xda\xf8\x83\xd2\xa7\xf4\x12\xca\x17?\xe2\x10u\xd8\xe5\xf9\xc6\xa7\x1c\x8a\x1fP\xb5

我可以在返回的字符串的开头看到文件名,但我不确定如何实际提取内容。根据requests文档,应该是自动解压gz文件吧?

http://requests.readthedocs.org/en/latest/community/faq/

响应对象看起来在标头中也包含 gzip:

{'Accept': '/', 'Connection': 'keep-alive', 'Accept-Encoding': 'gzip, deflate', 'User-Agent': 'python-请求/2.7.0 CPython/2.7.10 Windows/7'}

任何建议将不胜感激。

【问题讨论】:

    标签: python-2.7 https gzip python-requests


    【解决方案1】:

    有时网络客户端会要求服务器在发送文件之前对其进行压缩。不是.gz 文件,请注意,因为您不会压缩两次。这减少了文件大小,尤其是对于大型文本文件。然后客户端在将其显示给用户之前自动解压缩它。这就是您问题中的请求文档所描述的内容。对于您的用例,您不必担心这一点。

    要解压缩 gzip 文件,您必须使用 gzip(标准库的一部分)在内存中解压缩它,或者以 'wb' 模式将其写入磁盘并使用 gzip 实用程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多