【问题标题】:R: Download historical data from Yahoo FinanceR:从雅虎财经下载历史数据
【发布时间】:2017-05-29 17:41:50
【问题描述】:

Yahoo Finance 最近将其历史数据 URL 从 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'

当通过浏览器手动调用下载时,下载工作正常,因此雅虎财经并没有试图阻止对数据的访问。显然,浏览器正在向雅虎服务器发送一些秘密调味料。我可以通过 R 脚本发送相同的秘方吗?

【问题讨论】:

标签: r https yahoo-finance


【解决方案1】:

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

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

对于 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)

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2022-12-05
      • 1970-01-01
      • 1970-01-01
      • 2019-09-12
      • 2023-03-16
      • 1970-01-01
      • 2022-06-16
      • 1970-01-01
      • 2015-05-07
      相关资源
      最近更新 更多