Сервер возвращает данные со странным кодированием / сжатием - PullRequest
0 голосов
/ 13 апреля 2020

Я запрашиваю данные с сайта, который, похоже, возвращает данные в кодировке 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

Это запрос GET к этому URL-адресу https://www.bestfightodds.com/api?f=ggd&m=20222&p=2
Что-то, что, как казалось, могло работать равно

data = zlib.decompress(base64.b64decode(r.content))

Но любая декомпрессия всегда приводит к zlib.error: Error -3 while decompressing data: incorrect header check

1 Ответ

0 голосов
/ 25 апреля 2020

Это явно не сжато. После декодирования с помощью Base64 данные становятся очень повторяющимися.

...