YQL 不从余额 sheet 或损益表返回数据
YQL not returning data from balance sheet or income statement
我一直在尝试使用YQL来访问上市公司的基本面。但是 YQL 查询并未返回 Yahoo 财经页面中显示的内容。具体来说,我需要从余额 sheet 和损益表中检索数据,YQL 中 Apple 的示例查询如下:
SELECT * FROM yahoo.finance.balancesheet WHERE symbol='AAPL'
然而,这只是 returns 一个时间范围(季度),除此之外别无其他。
Link 我的示例查询的 YQL 控制台是 here
YQL 是否无法访问数据,或者我 运行 查询的方式有什么问题吗?如何通过 YQL 获取完整的数据列表,如 http://finance.yahoo.com/q/bs?s=AAPL?
您的查询过去工作正常。然而,一两个月前,一些 yahoo.finance YQL "tables" 停止工作。
IOW,你做得对,但是 YQL 坏了。
如果您将鼠标悬停在 YQL 控制台左栏中的 yahoo.finance.balancesheet
条目上,标有 desc 和 src 的按钮出现。如果您单击 src,它会为您获取抓取代码:http://www.datatables.org/yahoo/finance/yahoo.finance.balancesheet.xml. To make the E4X JavaScript 清晰,右键单击并 select 查看源代码或使用 wget
或 curl
来自命令行。
请注意代码获取 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
和 class yfnc_tabledata1
。但是,它没有 tr
直接子节点。显然,雅虎一定决定添加一个 tbody
元素。这可能解释了为什么查询不再抓取任何数据。
代码页将 Ryan Hoium 列为作者。稍微谷歌一下就可以找到代码所在的 github repository,以及其他 Yahoo Finance table 的代码。
遗憾的是,最近只有 yahoo.finance.sectors
table 受到关注。更改是在其 XPath 表达式中添加双斜杠。双斜杠放宽了 "direct child" 的要求,例如,即使中间有 tbody
,也允许仍然找到 tr
。但是,似乎新版本尚未推送到 public 站点。
我一直在尝试使用YQL来访问上市公司的基本面。但是 YQL 查询并未返回 Yahoo 财经页面中显示的内容。具体来说,我需要从余额 sheet 和损益表中检索数据,YQL 中 Apple 的示例查询如下:
SELECT * FROM yahoo.finance.balancesheet WHERE symbol='AAPL'
然而,这只是 returns 一个时间范围(季度),除此之外别无其他。
Link 我的示例查询的 YQL 控制台是 here
YQL 是否无法访问数据,或者我 运行 查询的方式有什么问题吗?如何通过 YQL 获取完整的数据列表,如 http://finance.yahoo.com/q/bs?s=AAPL?
您的查询过去工作正常。然而,一两个月前,一些 yahoo.finance YQL "tables" 停止工作。
IOW,你做得对,但是 YQL 坏了。
如果您将鼠标悬停在 YQL 控制台左栏中的 yahoo.finance.balancesheet
条目上,标有 desc 和 src 的按钮出现。如果您单击 src,它会为您获取抓取代码:http://www.datatables.org/yahoo/finance/yahoo.finance.balancesheet.xml. To make the E4X JavaScript 清晰,右键单击并 select 查看源代码或使用 wget
或 curl
来自命令行。
请注意代码获取 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
和 class yfnc_tabledata1
。但是,它没有 tr
直接子节点。显然,雅虎一定决定添加一个 tbody
元素。这可能解释了为什么查询不再抓取任何数据。
代码页将 Ryan Hoium 列为作者。稍微谷歌一下就可以找到代码所在的 github repository,以及其他 Yahoo Finance table 的代码。
遗憾的是,最近只有 yahoo.finance.sectors
table 受到关注。更改是在其 XPath 表达式中添加双斜杠。双斜杠放宽了 "direct child" 的要求,例如,即使中间有 tbody
,也允许仍然找到 tr
。但是,似乎新版本尚未推送到 public 站点。