返回连接的 YQL 请求被拒绝


YQL request returning Connection refused

以下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);

当我登录到雅虎开发人员控制台进行测试时,我可以很好地查询公共数据表。 但是,当我尝试使用控制台访问任何这样的社区数据表时,我返回以下内容(所有社区数据表都会发生此错误):

{
 "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 开发人员控制台后,"连接被拒绝"消息再次出现。

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

我试图访问错误消息内容节点中引用的URL,但该站点似乎已关闭。我不确定此内容节点是否对 API 重要,因为我可以从不同的 IP 地址访问它。

我愿意接受有关如何确定/解决此问题的建议和建议。

雅虎社区表存储在 datatables.org,datatables.org 下降;这就是存在查询问题的原因。

http://www.datatables.org

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

但是,如果您查看雅虎财经页面,CSV下载链接可以工作,尽管现在有所不同。它是通过一个新的 API,该 API 使用身份验证令牌"crumb",当您访问页面时,该令牌链接到 cookie。

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