Xia*_*Liu 3 finance yql yahoo-finance
我一直在尝试使用YQL来访问上市公司的基本面.但雅虎财务页面中显示的内容并未从YQL查询中返回.具体来说,我需要从资产负债表和损益表中检索数据,在YQL中对Apple的示例查询如下:
SELECT * FROM yahoo.finance.balancesheet WHERE symbol='AAPL'
但是,这只返回一个时间范围(每季度),而不是其他任何内容.
链接到我的示例查询的YQL控制台就在这里
YQL无法访问数据,或者运行查询的方式有什么问题吗?如何通过YQL 获取http://finance.yahoo.com/q/bs?s=AAPL中的完整数据列表?
您的查询过去工作正常.但是,一两个月前,一些yahoo.finance YQL"表"停止了工作.
IOW,你做得对,但YQL坏了.
如果将鼠标悬停在yahoo.finance.balancesheetYQL控制台左栏中的条目上,则会出现标记为desc和src的按钮.如果单击src,它会为您提取抓取代码:http://www.datatables.org/yahoo/finance/yahoo.finance.balancesheet.xml.要使E4X JavaScript清晰可见,请右键单击并选择"查看源"或使用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");
Run Code Online (Sandbox Code Playgroud)
如果您将页面提取到浏览器并检查HTML,您会发现确实存在table类yfnc_tabledata1.但是,它没有tr直接的孩子.显然,雅虎必须决定增加一个tbody元素.这可能解释了为什么查询不再刮擦任何数据.
代码页列出了Ryan Hoium作为作者.有点谷歌搜索引导代码所在的github存储库,以及其他Yahoo Finance表的代码.
可悲的是,只有yahoo.finance.sectors桌子受到了最近的关注.更改是在其XPath表达式中添加双斜杠.双斜线放松了"直接孩子"的要求,例如,tr即使有干预,仍然可以找到它tbody.但是,似乎新版本尚未推送到公共站点.
| 归档时间: |
|
| 查看次数: |
1903 次 |
| 最近记录: |