【问题标题】:YQL query randomly failsYQL 查询随机失败
【发布时间】:2014-03-23 16:26:47
【问题描述】:

我正在使用YQL 请求特定股票的数据以显示在我的页面上(请参阅my answer 到相关的 YQL 问题)。

在没有明显原因的情况下,获取股票数据的调用会定期失败。如果我只是刷新页面,那么它(可能)会再次工作。总体而言,它似乎在 75% 的时间里成功,而在另外 25% 的时间里失败了。

当我在YQL console 中测试我的呼叫时,我得到了同样的结果:results 偶尔会以null 的形式返回:

再次单击“测试”按钮(不做任何更改)通常会正确提取结果。

我知道有一个limit 来表示我可以多久发出一次请求,但我不可能接近 2,000 个请求/小时/IP(这无论如何都没有意义,因为即使控制台测试也失败了) .

还有什么问题?雅虎的服务是否参差不齐?


更新:启用 YQL 的 debug 选项后,我收到以下消息:

找不到表 yahoo.finance.quotes 的定义


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

【问题讨论】:

  • 勾选“调试”选项,然后再次运行查询。它应该为您提供有关 YQL 发出的外部请求的调试信息的链接,以查看数据提供程序是否存在问题。
  • 好主意,不幸的是我还没能在启用调试选项的情况下让它失败......哈哈。

标签: ajax json null yql stocks


【解决方案1】:

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

解决方案是选中(启用)左上角的 Show Community Tables 选项。这将使您在上面显示的示例查询正常工作。选中此选项还会将env 参数添加到控制台底部显示的其余查询中。当您的应用对 YQL 进行 API 调用时,您也需要添加此内容。

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

【讨论】:

  • 嗯...听起来很有道理,但是即使选中了该选项,我仍然能够在 YQL 控制台中使调用失败一次。而且我正在使用的查询已经有env 参数...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-02
  • 2014-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-04
相关资源
最近更新 更多