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

使用R语言tq_get函数从Yahoo下载股票数据时遇403错误求助

解决tq_get下载RCL股票数据时的HTTP 403错误

HTTP 403错误是Yahoo Finance的反爬机制拦截请求导致的,以下是几种可行的解决方法:

方法1:更换为Alpha Vantage数据源

Alpha Vantage提供免费股票数据API,需先去官网申请免费密钥,再按以下步骤操作:

# 安装依赖包(未安装时执行)
install.packages(c("tidyquant", "quantmod"))
library(tidyquant)
library(quantmod)

# 设置API密钥
Sys.setenv(ALPHAVANTAGE_API_KEY = "你的Alpha Vantage密钥")

# 获取RCL数据并转为tidy格式
rcl_data <- getSymbols("RCL", src = "av", auto.assign = FALSE) %>%
  as_tibble(rownames = "date") %>%
  rename(
    open = RCL.Open,
    high = RCL.High,
    low = RCL.Low,
    close = RCL.Close,
    volume = RCL.Volume,
    adjusted = RCL.Adjusted
  )

方法2:修改请求头模拟浏览器访问

尝试修改getSymbols.yahoo的默认User-Agent,绕过Yahoo反爬检测:

library(tidyquant)

# 设置浏览器模拟的User-Agent
options(getSymbols.yahoo.useragent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36")

# 重新尝试获取数据
rcl_data <- tq_get("RCL", get = "stock.prices")

方法3:使用Tiingo数据源

Tiingo提供免费股票数据服务,申请密钥后可直接用tq_get调用:

library(tidyquant)

# 设置Tiingo API密钥
Sys.setenv(TIINGO_API_KEY = "你的Tiingo密钥")

# 获取RCL数据
rcl_data <- tq_get("RCL", get = "stock.prices", src = "tiingo")

注意事项

  • Alpha Vantage和Tiingo的免费API有请求次数限制,避免短时间内大量请求。
  • 如果修改User-Agent的方法无效,说明Yahoo反爬规则已更新,优先更换数据源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 13:12:04