yfinance 获取数据总是 too many request 无法获取价格啊

18 小时 0 分钟前
 emisora

这问题都出现半年了。尝试用 AI 解决,给我试了半天还都是 too many request.

我的网络是可以用 gemini cli 之类的,按理说应该不是网络问题啊。

简单测试代码如下:

import yfinance as yf
import pandas as pd

# 设置永辉超市的股票代码
ticker = "601933.SS"  # .SS 表示上海证券交易所

# 创建 yfinance 对象
stock = yf.Ticker(ticker)

# 获取实时价格(最新收盘价或当前价格,视市场情况而定)
current_price = stock.history(period="1d")["Close"].iloc[-1]

# 获取股票的详细信息(包括公司名称等)
info = stock.info

# 输出结果
print(f"永辉超市 ({ticker}) 的实时价格: {current_price:.2f} CNY")
print(f"公司名称: {info.get('shortName', '未知')}")

运行就直接报错:

 line 11, in <module>
    current_price = stock.history(period="1d")["Close"].iloc[-1]
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/anaconda3/lib/python3.12/site-packages/yfinance/utils.py", line 103, in wrapper
    result = func(*args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^
  File "/opt/anaconda3/lib/python3.12/site-packages/yfinance/base.py", line 91, in history
    return self._lazy_load_price_history().history(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/anaconda3/lib/python3.12/site-packages/yfinance/utils.py", line 103, in wrapper
    result = func(*args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^
  File "/opt/anaconda3/lib/python3.12/site-packages/yfinance/scrapers/history.py", line 178, in history
    data = get_fn(
           ^^^^^^^
  File "/opt/anaconda3/lib/python3.12/site-packages/yfinance/utils.py", line 103, in wrapper
    result = func(*args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^
  File "/opt/anaconda3/lib/python3.12/site-packages/yfinance/data.py", line 364, in get
    return self._make_request(url, request_method = self._session.get, user_agent_headers=user_agent_headers, params=
params, timeout=timeout)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/anaconda3/lib/python3.12/site-packages/yfinance/utils.py", line 103, in wrapper
    result = func(*args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^
  File "/opt/anaconda3/lib/python3.12/site-packages/yfinance/data.py", line 424, in _make_request
    raise YFRateLimitError()
yfinance.exceptions.YFRateLimitError: Too Many Requests. Rate limited. Try after a while.

这要怎么解决呢,难道 yahoo 的 API 封这么严重啊。有没有知道怎么解决的老兄啊,感谢!

807 次点击
所在节点    Python
10 条回复
promiser3d
17 小时 48 分钟前
本来就不支持 A 股和港股的 tick 。只有美股有 tick 数据。
coefu
15 小时 28 分钟前
高频包括 tick 级别的数据,都是网络里最宝贵的资源,你甚至花钱都不知道去哪里获取。虽然不如 alpha 因子 珍贵,但是要得到也是要费不少时间和精力的,所有开源的这些封装都是忽悠人的。
kxg3030
15 小时 2 分钟前
如果需要可以私我 可以提供 tick 数据
1024G
14 小时 55 分钟前
yfinance.exceptions.YFRateLimitError: Too Many Requests. Rate limited.

超过服务器配置的每秒请求的数量了
ModiKa2022
14 小时 27 分钟前
秒级的数据都可以获取,为什么只用 yfinance
jkc626
14 小时 19 分钟前
yfinance 就是经常超时。现在免费的数据接口越来越少了,质量好一些的都需要付费。最近我都在考虑要不要付费开通下 tushare 的权限了。
DefoliationM
13 小时 52 分钟前
https://query1.finance.yahoo.com

User-Agent curl/7.68.0


api 改了,需要加个 UserAgent 。苹果也用的 yahoo 的接口。
DefoliationM
13 小时 44 分钟前
@DefoliationM 自测黄金还能用 代号是:GC=F ,SGC=F 和 SGU=F
sk217
13 小时 41 分钟前
@coefu 金融领域 整理好没有出错的数据,就相当难得了,很多数据源压根就没人维护,甚至还有很多错误,像是拆股后,前复权后复权 都没人弄
DefoliationM
13 小时 13 分钟前
@DefoliationM useragent 写错了

Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:136.0) Gecko/20100101 Firefox/136.0

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1162621

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX