Python调用financeapi.net遇403错误求助:官网调用正常脚本失败
Python调用financeapi.net返回403错误的解决建议
问题概述
自2022年10月25日起,所有Python脚本调用financeapi.net均返回403服务器错误,但使用相同凭证在平台规格页面调用API可成功,无官方支持渠道,寻求解决办法。
调用代码
url = "https://yfapi.net/v6/finance/quote" querystring = {"symbols":"ES=F"} headers = {'x-api-key': apikey} response1 = requests.request("GET", url, headers=headers, params=querystring) print(response1) # Returns "Response [403]" future=response1.json()["quoteResponse"]["result"][0]
已尝试无效操作
- 在规格页面执行API调用(成功);
- 向request函数传递额外参数;
- 在请求头中添加
accept: application/json; - 使用
requests.get()方法; - 直接使用包含所有参数的完整URL:
https://yfapi.net/v6/finance/quote?symbols=ES%3DF - 无法在浏览器中复现成功调用结果
可行排查方向
- 补全请求头关键字段
平台的规格页面调用时,浏览器会自动携带User-Agent、Referer等头信息,而Python脚本默认不包含,API可能做了反爬或来源校验。尝试在headers中添加这些字段:
headers = { 'x-api-key': apikey, 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'Referer': 'https://financeapi.net对应的规格页面地址' # 替换为实际页面URL }
- 抓包对比请求差异
用浏览器开发者工具(F12)抓取规格页面调用API的请求详情,对比脚本请求的以下内容:
- 所有请求头字段(包括Cookie、Origin等)
- 参数的编码格式和传递方式
- 请求方法和URL的细微差异
把缺失的字段或参数补充到脚本中。
- 添加Cookie字段
如果规格页面调用时浏览器存在有效Cookie,将其复制到脚本的headers中:
headers['Cookie'] = '这里填入抓包得到的Cookie内容'
- 验证API密钥权限
确认API密钥是否限制了调用环境(比如仅允许浏览器端调用),虽然页面调用成功,但可能脚本的请求被判定为非授权环境。
内容的提问来源于stack exchange,提问作者ngb
相关产品推荐
相关产品推荐

