Oddsportal赛事数据接口编码内容的解码方法求助
Oddsportal赛事数据接口编码内容的解码方法求助
我已经爬取Oddsportal的赛事赔率数据好几年了,之前一直都很顺利,但最近他们把接口返回的数据做了编码处理,我试了各种方法都没找到解码的路子,想求助大家有没有思路。
先给大家说下情况:
- Oddsportal本来会提供多个博彩平台的赔率数据,现在他们的赛事数据接口返回的内容被编码了,原本应该是JSON格式的结果,现在拿到的是一串看不懂的长字符串。
- 比如某场利物浦对阵曼城的英超赛事,对应的feed接口返回的内容就是编码后的状态,而且接口地址里的末尾部分(比如
yj30c.dat里的中间字符)有时候会变动。
我写了一段Python脚本来获取这个接口的数据,部分请求头可能不是必须的,代码如下:
import urllib.request url = 'https://www.oddsportal.com/feed/match-event/1-1-82qTWLi3-1-2-yjdca.dat' headers = { 'authority': 'www.oddsportal.com', 'method': 'GET', 'scheme': 'https', 'accept': 'application/json, text/plain, */*', 'accept-encoding': 'deflate', 'accept-language': 'en-US,en;q=0.9,fi-FI;q=0.8,fi;q=0.7', 'content-type': 'application/json', 'referer': 'https://www.oddsportal.com/matches/hockey/20240109', 'sec-ch-ua-platform': '"Windows"', 'sec-fetch-dest': 'empty', 'sec-fetch-mode': 'cors', 'sec-fetch-site': 'same-origin', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', 'x-requested-with': 'XMLHttpRequest' } req = urllib.request.Request(url, headers=headers) text = urllib.request.urlopen(req).read().decode('utf-8') print(text[:80]) print('string length:', len(text))
运行这段脚本后,得到的输出是:
NFBSamc0SmVBREJnQVgwMm9Ld0IwMll1VXNBVEYyckdONHJnL3ljUEtYSjlJVDZ5Q0ZWNmlkeWcxYnJy string length: 187240
有没有大佬能指点下,这串编码内容应该怎么解码才能得到原本的JSON数据呀?
备注:内容来源于stack exchange,提问作者Mikko Luttinen
相关产品推荐
相关产品推荐

