【已解决】YFRateLimitError(‘Too Many Requests. Rate limited. Try after a while.‘)

最近在使用雅虎金融 yfinance library 获取美股数据的时候,突然出现报错

YFRateLimitError(‘Too Many Requests. Rate limited. Try after a while.’)

字面意思就是我请求的频率太高了被限制了过一会儿再试试看吧!但是,实际上呢,我也只是第一次请求并且只做了一次请求,难道这个频率也高嘛。事出反常必有妖啊,ok,立马google了一下这个错误。关于这个错误确实不是个例,网上也有很多人遇到过,下图是认可最多的解决方案:
在这里插入图片描述
点击链接直达该issue

意思就是说需要升级下libary到最新版本,这个回答被大多数开发者所认同,很多人反馈解决了这个问题。同样地,我也试了下这个解决方案,执行命令

pip install yfinance --upgrade

运行截图如下:
在这里插入图片描述
看来我的 package 已经是最新的了,ok,那再次运行代码获取美股数据试试:

start_date = '2005-04-01'
end_date = '2025-04-30'
tickers = ['APP', 'TSLA']
data = yf.download(tickers, start_date, end_date, progress = False)['Close']
data = data.pct_change().dropna()
data = data[tickers]
print(data[tickers])

但是,在运行完之后发现依旧报错,还是之前的错误提示。
在这里插入图片描述

因此,排除是因为 package 不是最新的缘故,可能是其他原因。在经过一番研究和摸索之后发现,雅虎金融已经停止对东大提供数据服务,和 package 是不是最新的没有关系。好的,那只有用魔法来对抗魔法了,上VPN!上了VPN之后,通过代理国外IP访问雅虎金融,并且在运行数据获取代码之前,加一段这样的代码:

import os
proxy = 'http://127.0.0.1:7890' # 代理设置,此处修改
os.environ['HTTP_PROXY'] = proxy
os.environ['HTTPS_PROXY'] = proxy

使用代理并设置端口号,一般代理端口号为7890。之后,再运行之前的代码,获取美股数据便成功了。
在这里插入图片描述

最后,总结下就是:在东大范围内获取雅虎金融的数据,需要开启VPN使用代理地址,并且设置代理端口号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ReadThroughLife

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值