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

Quantmod无法获取Yahoo Finance数据,报HTTP error 401求助

解决HTTP 401错误的建议

HTTP 401是未授权访问错误,根源是Yahoo Finance调整了API访问规则,旧版quantmod依赖的无认证接口已被限制。以下是具体解决方案:

方案1:更新quantmod到最新版本

开发者可能针对Yahoo的接口变化修复了问题,先尝试更新包:

update.packages("quantmod")

更新后重新运行你的代码,若仍报错,尝试下面的替代方案。

方案2:换用适配Yahoo新API的包

推荐使用tidyquant或yfR,这两个包已适配Yahoo Finance的最新认证机制:

用tidyquant获取指标示例

# 安装并加载包
install.packages("tidyquant")
library(tidyquant)

Stocks <- c("BAC", "AAPL")
# 获取估值和价格相关指标
metrics1 <- tq_get(Stocks, 
                   get = "key.ratios",
                   options = list(period = "annual")) %>%
  filter(section %in% c("Valuation Ratios", "Price Performance")) %>%
  select(symbol, section, metric, value)

# 查看结果
print(metrics1)

用yfR获取最新报价示例

# 安装并加载包
install.packages("yfR")
library(yfR)

Stocks <- c("BAC", "AAPL")
# 获取最新报价及关键指标
metrics1 <- yf_get(tickers = Stocks, 
                   period = "1d",
                   get_prices = TRUE,
                   get_quote = TRUE)

# 提取所需字段
select(metrics1, ticker, price_close, pe_ratio, pb_ratio, previous_close, year_high, price_change)

方案3:手动适配quantmod的API端点(不推荐)

如果坚持用quantmod,需要手动指定Yahoo的新API地址并处理认证,但步骤繁琐且不稳定,不如直接换包高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 12:23:23