首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >R:从Yahoo Finance下载历史数据

R:从Yahoo Finance下载历史数据
EN

Stack Overflow用户
提问于 2017-05-30 01:41:50
回答 2查看 3.3K关注 0票数 0

雅虎财经最近将其历史数据URL从http改为https。例如,以下是获取IBM最大历史记录的URL (截至今天,2017-05-29):

代码语言:javascript
运行
复制
https://query1.finance.yahoo.com/v7/finance/download/IBM?period1=-252345600&period2=1496041200&interval=1d&events=history&crumb=jIIyoewBT2o

当我尝试从R中读取这个资源时,我得到了以下内容:

代码语言:javascript
运行
复制
> url = 'https://query1.finance.yahoo.com/v7/finance/download/IBM?period1=-252345600&period2=1496041200&interval=1d&events=history&crumb=jIIyoewBT2o'
> read.csv(url)
Error in file(file, "rt") : 
  (converted from warning) cannot open URL 'https://query1.finance.yahoo.com/v7/finance/download/IBM?period1=-252345600&period2=1496041200&interval=1d&events=history&crumb=jIIyoewBT2o': HTTP status was '401 Unauthorized'

当通过浏览器手动调用时,下载效果很好,所以雅虎财经并没有试图阻止访问数据。显然,浏览器正在向Yahoo服务器发送一些秘密信息。我可以通过R脚本发送相同的秘密调味汁吗?

EN

回答 2

Stack Overflow用户

发布于 2017-09-04 01:35:24

我认为雅虎在几个月前就放弃了它的API。如果您需要Excel解决方案,可以从标题为"Get Excel Spreadsheet to download Bulk Historical Data from Google Finance“的链接下载示例文件。

http://investexcel.net/multiple-stock-quote-downloader-for-excel/

对于R,执行以下操作。

代码语言:javascript
运行
复制
library(BatchGetSymbols)

first.date <- Sys.Date()-365
last.date <- Sys.Date()

df.SP500 <- GetSP500Stocks()
tickers <- df.SP500$tickers

l.out <- BatchGetSymbols(tickers = tickers,
                         first.date = first.date,
                         last.date = last.date)

print(l.out$df.control)
print(l.out$df.tickers)
票数 0
EN

Stack Overflow用户

发布于 2018-08-31 03:12:08

当前版本的“免费”Deriscope可以从YF下载历史数据和实时提要。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44247970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档