R中Quantmod包GetSymbols无法连接雅虎财经下载数据报错
R语言quantmod拉取雅虎财经股票数据连接失败修复方案
问题复现
执行如下代码从Yahoo Finance下载SPY日线数据时触发报错:
install.packages("quantmod") library(quantmod) getSymbols.yahoo(Symbols = "SPY")
控制台返回报错信息:
Error in new.session() : Could not establish session after 5 attempts
报错含义:连续5次尝试后仍无法建立和雅虎财经数据接口的会话连接
常见触发原因
- 本地安装的quantmod版本过旧,内置的接口交互逻辑不匹配雅虎财经侧更新后的接口校验规则
- 默认连接超时时间设置过短,网络波动时重试次数耗尽直接抛出错误
- 本地网络存在访问限制,无法正常连通雅虎财经公开数据服务
修复操作
- 先将quantmod升级到CRAN最新正式版,执行完成后重启R会话:
install.packages("quantmod") - 重启后优先调用导出的
getSymbols主函数而非内部未导出的getSymbols.yahoo方法,同时手动指定curl下载方式、延长连接超时时间后重试:
library(quantmod) options(download.file.method = "curl", timeout = 200) getSymbols("SPY", src = "yahoo")
- 若上述操作仍无法解决问题,排查本地网络访问规则,确认可正常访问雅虎财经公开服务后再重试。
内容的提问来源于stack exchange,提问作者user3814595
相关产品推荐
相关产品推荐

