YQL不从资产负债表或损益表中返回数据

时间:2015-04-09 07:37:57

标签: yql finance yahoo-finance

我一直在尝试使用YQL来访问上市公司的基本面。但雅虎财务页面中显示的内容并未从YQL查询中返回。具体来说,我需要从资产负债表和损益表中检索数据,YQL中Apple的示例查询如下:

SELECT * FROM yahoo.finance.balancesheet WHERE symbol='AAPL'

然而,这只返回一个时间范围(每季度),而不是其他任何内容。

我的示例查询的YQL控制台链接是here

YQL无法访问数据,或者运行查询的方式有什么问题吗?如何通过YQL获取http://finance.yahoo.com/q/bs?s=AAPL中的完整数据列表?

1 个答案:

答案 0 :(得分:5)

您的查询过去工作正常。然而,一两个月前,一些yahoo.finance YQL"表"停止了工作。

IOW,你做对了,但YQL坏了。

如果将鼠标悬停在YQL控制台左栏的yahoo.finance.balancesheet条目上,则会显示标有 desc src 的按钮。如果您点击 src ,它会为您提取抓取代码:http://www.datatables.org/yahoo/finance/yahoo.finance.balancesheet.xml。要使E4X JavaScript清晰可见,请右键单击并选择查看源代码或从命令行使用wgetcurl

请注意,代码提取http://finance.yahoo.com/q/bs?s=AAPL&quarterly,然后使用XPath查询来查找数据:

var query = y.xpath(rawresult, "//table[@class='yfnc_tabledata1']/tr/td/table/tr");

如果您将page提取到浏览器中并检查HTML,则会发现确实存在table个类yfnc_tabledata1。但是,它没有tr直接孩子。显然,雅虎必须决定添加tbody元素。这可能解释了为什么查询不再删除任何数据。

代码页列出了Ryan Hoium作为作者。有点谷歌搜索引导代码所在的github repository,以及其他Yahoo Finance表的代码。

可悲的是,只有yahoo.finance.sectors表最近受到了关注。更改是在其XPath表达式中添加双斜杠。双斜线放松了直接的孩子"要求,例如,即使有干预tr,也可以找到tbody。但是,似乎新版本尚未推送到公共站点。