【问题标题】:Server returns data with strange encoding/compression服务器以奇怪的编码/压缩返回数据
【发布时间】: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,我得到了和你一样的结果。可能以其他方式加密。我想你没有这方面的文档?
  • 没有文档。

标签: python base64 gzip zlib


【解决方案1】:

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

【讨论】:

  • 你最终从中得到了什么有意义的东西吗?数据应该是投注赔率的时间序列。对我来说不再重要了,但是如果我解码它,我只会得到垃圾 ,LQ?2>6QiQ|62?Q[Q52E2Qi,LQIQidgdg_fbgg___[QJQi]d[Q52E2{236=DQiLQIQihNN[LQIQidgdhbhcg___[ QJQi]cc_dbN[LQIQidgdhfbeg___[QJQi]cN[LQIQidgdhfhced___[QJQi]cc_dbN[LQIQidge_dcdac___[QJQi]ca_`f[Q52E2{236=DQiLQIQi\hNN.N.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-23
  • 1970-01-01
  • 1970-01-01
  • 2020-12-17
  • 2023-03-17
  • 1970-01-01
相关资源
最近更新 更多