You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么使用wallstreet.py循环获取期权数据的相同代码会偶发失败?

问题根因

wallstreet.py 包底层通过调用雅虎金融的公开非官方接口获取期权数据,你遇到的不稳定现象本质是触发了接口的请求频率限制(限流):

  • 短时间内连续发送大量请求,服务端会临时限制你的IP访问,限制期内返回的响应数据不完整,包无法解析到你指定日期、行权价的期权,就会自动 fallback 到最近的可用期权,也就出现了你观测到的日期、行权价异常的提示
  • 限流有效期过后服务端会自动恢复响应,所以运行一段时间后结果又会回归正常,和你实测的表现完全吻合
对应解决方案
  • 增加请求间隔:每次拉取数据后增加短暂等待,避免短时间请求量过高触发限流,可将代码调整为如下形式:
from wallstreet import Put
import time

for i in range(0,100):
    print(i, Put('IWM', d=15, m=10, y=2021, strike=200))
    # 每次请求后等待0.5秒,可根据实际拉取量调整时长
    time.sleep(0.5)
  • 增加重试机制:拉取数据后先校验返回的到期日、行权价是否和传入参数一致,若不匹配则等待数秒后重新请求,避免直接使用异常结果
  • 增加本地缓存:如果存在重复拉取相同参数期权的场景,可将已拉取过的结果存储在本地字典或缓存中,重复请求时直接读取本地结果,无需重复调用接口
  • 替换官方接口:如果有大批量拉取需求,可以申请雅虎金融官方开发者API,官方接口有更高的请求配额,稳定性远高于公开爬虫接口

内容的提问来源于stack exchange,提问作者lstacey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 01:15:01