R:从Yahoo Finance下载历史数据

问题描述 投票:0回答:2

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

https://query1.finance.yahoo.com/v7/finance/download/IBM?period1=-252345600&period2=1496041200&interval=1d&events=history&crumb=jIIyoewBT2o

当我尝试从R内部读取此资源时,我得到以下内容:

> 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 Finance试图阻止访问数据。显然,浏览器正在向雅虎服务器发送一些秘密内容。我可以通过R脚本发送相同的秘密酱吗?

r https yahoo-finance
2个回答
0
投票

我认为几个月前雅虎取消了它的API。如果您需要Excel解决方案,可以从标题为“获取Excel电子表格以从Google财经下载批量历史股票数据”的链接下载示例文件

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

enter image description here

对于R,做这样的事情。

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
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.