【发布时间】:2020-04-13 18:04:36
【问题描述】:
我正在从一个似乎返回 base64 编码数据的站点请求数据。响应如下所示:
b'LExRPzI+NlFpUXw2Mj9RW1E1MkUyUWksTFFJUWlgZGdkZ19mYmdnX19fW1FKUWlgXWRbUTUyRTJ7MjM2PURRaUxRSVFpaE5OW0xRSVFpYGRnZGhgYmhjZ19fX1tRSlFpYF1jY19kYk5bTFFJUWlgZGdkaGBmYmVnX19fW1FKUWlgXWNOW0xRSVFpYGRnZGhmaGNlZF9fX1tRSlFpYF1jY19kYk5bTFFJUWlgZGdlX2RjZGFjX19fW1FKUWlgXWNhX2BmW1E1MkUyezIzNj1EUWlMUUlRaVxoTk4uTi4='
但是,仅仅在那个字节序列上使用base64.decode 并没有给出任何有意义的数据,所以在转换这些数据时必须有一些其他的步骤。
以下是此请求的标头:
Connection: keep-alive
Content-Encoding: gzip
Content-Type: text/html; charset=UTF-8
Date: Mon, 13 Apr 2020 17:48:49 GMT
Server: nginx/1.14.0 (Ubuntu)
Transfer-Encoding: chunked
这是对该 URL https://www.bestfightodds.com/api?f=ggd&m=20222&p=2 的 GET 请求
似乎它可以工作的东西是
data = zlib.decompress(base64.b64decode(r.content))
但是任何类型的解压总是会得到zlib.error: Error -3 while decompressing data: incorrect header check
【问题讨论】:
-
我认为应该反过来。您解压缩字节,而不是 base64 解码它们。顺便说一句,你是怎么陷入这种境地的?如果您正在使用请求,他们handle gzip 为您服务
-
Opposite 仍然给出关于标题的相同错误。我用的是requests,但是response看起来和上面的bytes字符串一模一样,你可以自己打开链接看看。
-
如果你使用requests,那么你不必担心gzip。是的,我可以看到数据看起来像 base64,我得到了和你一样的结果。可能以其他方式加密。我想你没有这方面的文档?
-
没有文档。