截至 2017 年 5 月 17 日至 18 日,YQL / datatables.org 是否下降?

Is YQL / datatables.org down as of May 17-18, 2017?

在过去的 1-2 天里,我用于从雅虎财经下载历史股票价格的 http 查询一直无法正常工作。我一直在使用的 link 是下面的第一个,但我也尝试了其他三个(因为我看到其他人使用它们):

http://real-chart.finance.yahoo.com/table.csv?s=TRQ&d=6&e=3&f=2016&g=d&a=5&b=25&c=2016&ignore=.csv
https://real-chart.finance.yahoo.com/table.csv?s=TRQ&d=6&e=3&f=2016&g=d&a=5&b=25&c=2016&ignore=.csv
http://ichart.finance.yahoo.com/table.csv?s=TRQ&d=6&e=3&f=2016&g=d&a=5&b=25&c=2016&ignore=.csv
https://ichart.finance.yahoo.com/table.csv?s=TRQ&d=6&e=3&f=2016&g=d&a=5&b=25&c=2016&ignore=.csv

我注意到一件有趣的事情是,雅虎网站本身提供的 link(手动下载数据)发生了变化。 link 曾经是上面列表中的第一个(毕竟,这是我从那里得到的)但现在如下:

https://query1.finance.yahoo.com/v7/finance/download/TRQ?period1=1466805600&period2=1467496800&interval=1d&events=history&crumb=DuX0UxVwtN0

请注意,所有这些 link 理论上应该检索相同的数据:从 2016/06/25 到 2016/07 的 TRQ 股票价格(只是一个例子,我也尝试过,例如 AAPL) /03.

这个新的 links 可以在浏览器或我的程序中运行,但它很难扩展,因为它需要一个会话 cookie;如果您只是遗漏了最后一个查询参数,则会收到一条错误消息,提示您未获得授权。 询问如何以自动方式创建所述会话 cookie;但是,我想问一下如何通过尝试直接访问 YQL 数据库来完全避免这个问题。

我尝试使用下面的 link 直接使用 YQL API(将空格转换为 %20 等,这不是问题):

https://query.yahooapis.com/v1/public/yql?q=
  select * from yahoo.finance.historicaldata where symbol = "TRQ" 
  and startDate = "2016-06-25" 
  and endDate = "2016-07-03"
 &format=json
 &diagnostics=true
 &env=store://datatables.org/alltableswithkeys
 &callback=

这个 link returns 一个 "connection refused" 错误。正如 所暗示的,这可能是因为 datatables.org 站点已关闭(link 中的问题指的是大约一年前的一次停机事件)。有人有这方面的更多信息吗?

谢谢。

Yahoo 已正式确认 Yahoo Finance API 已在 Yahoo Help Community 的以下主题中停止使用(请参阅用户名为 Nixon 的帖子):

https://forums.yahoo.net/t5/Yahoo-Finance-help/Is-Yahoo-Finance-API-broken/m-p/250503#U250503

我们都在问自己"now what?"

请与社区分享您的发现。

好像挂了。 Quandl 可能是最接近的免费替代品,但它没有所有相同的数据。特别是,我正在尝试检索各种 ETF 的数据,例如 VXUS 和 VTI,但它们不起作用。

现已停用的 Yahoo 数据的一大特色是 "adjusted price",它基本上提供了乐器的总 return。由于也不再提供,您不妨使用仍然可以自动化的 Google 财务 API。这是我使用 (excel VBA) 打开和保存包含数据的文件的片段。我在这里使用的结束日期是 2019 年或任何你想要的 - 它将下载到最后可用日期而不会产生错误:

startdate = #3/15/2015#
StartingMonth = Format(startdate, "Mmm")
StartingDay = Format(startdate, "d")
StartingYear = Format(startdate, "yyyy")
startdate = StartingMonth & "+" & StartingDay & "%2C+" & StartingYear    
Symbol = "AAPL" 
ThisAddress = "http://www.google.com/finance/historical?q=" & _
            Symbol & "&startdate=" & startdate & "&enddate=Nov+1%2C+2019&output=csv"
Workbooks(ThisBook).FollowHyperlink Address:=ThisAddress
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=Symbol, FileFormat:=xlCSV

在其中一个论坛帖子中,一名雅虎员工已确认免费 EOD 数据已终止,并且不会重新引入。查看此 thread 并寻找尼克松的回复。雅虎最近被Verizon收购,肯定是新的方向。

但是,如果您查看 Yahoo 财经页面,CSV 下载 link 可以使用,尽管现在有所不同。它是通过使用身份验证令牌 "crumb" 的新 API 实现的,当您访问该页面时,该令牌 link 被编入 cookie。

我已经整理了一些快速 Python3 代码来通过这个新的 API 下载与以前相同的 CSV(调整后的价格)。请查看 GitHub 项目 yahoo_quote_download