YQL请求返回连接被拒绝

时间:2016-03-16 04:49:17

标签: php yql yahoo-api

以下PHP代码(在Laravel上)已经工作了几个月,直到今天,我现在收到502错误,表明连接被拒绝:

$url = "https://query.yahooapis.com/v1/public/yql?q=select+%2A+from+yahoo.finance.quotes+where+symbol+in+%28%27YHOO%27%29&format=json&env=%20store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=";

$data = file_get_contents($url);
dd($data);

当我登录Yahoo Developer Console进行测试时,我能够很好地查询公共数据表。但是,当我尝试使用控制台访问任何社区数据表like this时,我返回以下内容(所有社区数据表都会出现此错误):

{
 "error": {
  "lang": "en-US",
  "diagnostics": {
   "url": {
    "execution-start-time": "0",
    "execution-stop-time": "7",
    "execution-time": "7",
    "http-status-code": "502",
    "http-status-message": "Connection refused",
    "content": "http://www.datatables.org/yahoo/finance/yahoo.finance.quotes.xml"
   }
  },
  "description": "No definition found for Table yahoo.finance.quotes"
 }
}

使用不同的机器/ IP地址,只要我保持匿名,我就可以很好地访问这些社区表。登录Yahoo Developer Console后,再次显示Connection refused消息。

我怀疑它与雅虎有关,可能会将我的IP地址列入黑名单或限制我的帐户,因为我每天为每个股票(3,000)运行一次此脚本。

我尝试访问错误消息content node中引用的网址,此网站显示已关闭。我不确定此内容节点是否与API有关,因为我可以从其他IP地址访问它。

我可以就如何确定/解决此问题提出建议和意见。

2 个答案:

答案 0 :(得分:4)

Yahoo社区表存储在datatables.org中, 和datatables.org关闭;这就是为什么会出现查询问题。

http://www.datatables.org

答案 1 :(得分:0)

在其中一篇论坛帖子中,雅虎员工已确认免费的EOD数据已被终止,并且不会重新引入。查看此thread并查找尼克松的回复。雅虎最近被Verizon收购,它必定是新方向。

但是,如果您查看Yahoo财经页面,则CSV下载链接会起作用,但现在不同。它是通过一个新的API使用身份验证令牌" crumb"当您访问该页面时链接到cookie。

我已经整理了一些快速Python3代码,通过这个新API下载与以前相同的CSV。请查看GitHub项目yahoo_quote_download