未知响应编码:收集者urequest.urlopen()

2024-06-16 10:58:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个web解析器,它可以登录到服务器(不是非法的)。请求收到以下响应:

\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x00\xabVJ\xceOIU\xb2\xaaV*K\xcc)\x052\x94\xcc\x95t\x94\xe2\xf3\x12sA\xec\x10\x7foW?\xa5Z\x1d\xa5\x94\xc4\x92D\x90\xa2\x82\xc4"\xa0LIjQ\xb1\x92U^iN\x8e\x8eRI~vj\x1eP\xa9\xae\x99\xb1\xa1\xa1\xa9\xb9\x85\x91\xa5\x89\x99\xb9\x81\x99\xb9\x99\x89\xa5)\xd0\xa4\xd2\xa2\x1c\x88J\xa0!\xb9\xa9\xc5\xc5\x89\xe9\xa90\x9dP.\xd4\xa4Z\x00\x94\x8a\xf6\xe1\x8a\x00\x00\x00

我尝试了大多数在线解码工具,但似乎没有什么工作。你知道吗

下面是响应头,如果有帮助的话。你知道吗

Server: nginx/1.6.0
Date: Sun, 16 Nov 2014 15:07:47 GMT
Content-Type: application/json;charset=UTF-8
Content-Length: 128
Connection: close
Cache-Control: no-cache
Expires: 0
Pragma: No-cache
Content-Encoding: gzip

可能是传输编码:分块意味着什么。你知道吗

你知道怎么破译吗?任何帮助都将不胜感激。你知道吗


Tags: contentx00xc4xb1xa5xa9xa1xcc
1条回答
网友
1楼 · 发布于 2024-06-16 10:58:08

响应是JSON格式的,并用gzip压缩。因此,要提取数据,请尝试以下操作:

>>> import json, gzip
>>> s = b"""\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x00\xabVJ\xceOIU\xb2\xaaV*K\xcc)\x052\x94\xcc\x95t\x94\xe2\xf3\x12sA\xec\x10\x7foW?\xa5Z\x1d\xa5\x94\xc4\x92D\x90\xa2\x82\xc4"\xa0LIjQ\xb1\x92U^iN\x8e\x8eRI~vj\x1eP\xa9\xae\x99\xb1\xa1\xa1\xa9\xb9\x85\x91\xa5\x89\x99\xb9\x81\x99\xb9\x99\x89\xa5)\xd0\xa4\xd2\xa2\x1c\x88J\xa0!\xb9\xa9\xc5\xc5\x89\xe9\xa90\x9dP.\xd4\xa4Z\x00\x94\x8a\xf6\xe1\x8a\x00\x00\x00"""
>>> with gzip.GzipFile(fileobj=io.BytesIO(s)) as gz:          
...     json.loads(gz.read().decode('utf-8'))
...                                                           
{u'messages': None, u'message': None, u'code': {u'value': u'7', u'_name': u'TOKEN'}, u'data': {u'url': None, u'token': u'-6311578294670676495', u'parameters': None}}                                                                                                                                         

这应该适用于Python2.7和Python3.x

>>> json.loads(gzip.decompress(s).decode('utf-8'))
{'code': {'_name': 'TOKEN', 'value': '7'}, 'messages': None, 'message': None, 'data': {'url': None, 'token': '-6311578294670676495', 'parameters': None}}

相关问题 更多 >