2014-02-21 202 views
1

我使用YQL来请求我的网页上显示的特定股票的数据(请参阅my answer到相关的YQL问题)。YQL查询随机失败

定期,由于没有明显的原因,获取库存数据的调用失败。如果我只是刷新页面,那么它会(可能)再次工作。总的来说,它似乎成功了75%的时间,而其他25%未能成功。

当我在YQL console测试我的电话,我得到同样的事情:偶尔results回来为null

enter image description here

再次点击测试按钮(不作任何更改)然后将通常正确拉动结果。

我知道有多少次我可以提出请求,但是我无法接近2,000个请求/小时/ IP(即使控制台测试失败也无济于事)。

问题还有什么?雅虎的服务仅仅是点点滴滴吗?


UPDATE:启用YQL的debug选择,我得到以下信息:

未找到表定义yahoo.finance.quotes


更新2:上面的错误是由于没有启用“显示社区表”选项(根据@ BrianC的回答)。但是,即使启用了该选项,我仍然偶尔会从查询中获得null响应,如屏幕截图所示。

+0

勾选“调试”选项,然后再次运行查询。它应该为您提供指向YQL所做外部请求的调试信息的链接,以查看它是否与数据提供者有关。 – salathe

+0

不错的想法,不幸的是我还没有能够让它失败,但启用了调试选项......哈哈。 – daGUY

回答

-1

默认情况下,YQL控制台将只使用内置表。表yahoo.finance.quotes实际上是社区表的一部分(ref:datatables.org)。

解决方案是检查(启用)左上角的显示社区表选项。这将让你像上面显示的示例查询工作。选中此选项也会将env参数添加到控制台底部显示的其余查询中。当您的应用程序对YQL进行API调用时,您还需要添加此项。

注意:如果您想知道为什么Yahoo Finance表格是社区表格的一部分而不是内置的,那是因为这些表格是刮掉相关网页的非官方表格。不幸的是,仍然没有官方的Yahoo Finance API(或YQL表)。

+0

嗯......这听起来很有道理,但即使选中了该选项,我仍然可以在YQL控制台中调用失败一次。而我正在使用的查询已经有'env'参数... – daGUY