Python用requests请求接口返回JSON与浏览器结果不一致如何处理
问题原因
该站点的API会校验请求头的User-Agent字段,识别到Python requests的默认UA标识后会返回非预期的拦截内容,而浏览器访问时携带了正常的浏览器UA,因此可以拿到正确的JSON数据。
调整后的代码
import requests as rq # 填入浏览器UA模拟正常用户请求,UA可以从你自己浏览器的开发者工具请求头里复制替换 headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36" } url = "https://api.tracker.gg/api/v2/rocket-league/standard/profile/epic/nosumable" resp = rq.get(url, headers=headers) if resp.status_code == 200: # 直接调用json方法即可拿到格式化的JSON数据 target_data = resp.json() print(target_data) else: print(f"请求异常,状态码:{resp.status_code}")
补充说明
如果仅添加User-Agent仍无法拿到正确结果,可以打开浏览器的开发者工具,找到对应接口请求的全部请求头字段,全部复制到代码的headers字典中,完全模拟浏览器请求即可。
内容的提问来源于stack exchange,提问作者nosumable
相关产品推荐
相关产品推荐

