首页 > 解决方案 > 服务器以奇怪的编码/压缩返回数据

问题描述

我正在从一个似乎返回 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

标签: pythonbase64gzipzlib

解决方案


显然没有压缩。用Base64解码后,数据高度重复。


推荐阅读