python - 服务器以奇怪的编码/压缩返回数据
问题描述
我正在从一个似乎返回 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解码后,数据高度重复。
推荐阅读
- android - 带有 WebView 的 Android 弹出登录屏幕
- c# - 使用 SQL 选择结果写入 C# DataTable 时出现转换失败错误
- r - 更改数据帧结构(两个数据帧为一个)
- python - 投资组合优化工具的问题 - IndexError
- ruby-on-rails - 带有自定义 JSON 失败消息的 Rails 基本身份验证
- sql - 在一对多系统中存储和计算关系
- javascript - 未捕获的 ReferenceError:未定义 CallApi
- java - 有没有更好的方法来编写这个循环?
- spring - jqgrid 基于特定值的格式。春天的jqgrid
- c# - 在一个表中查找条目以在另一个表中搜索