json - 谷歌金融 json 股票报价停止工作

到目前为止,我使用这个 URL 从谷歌金融获取股票报价,并使用 PHP 解析 json 数据:

http://finance.google.com/finance/info?client=ig&q=nse:infy,nasdaq:aapl

今天它停止工作 但是,我仍然可以访问这个:

http://finance.google.com/finance/?client=ig&q=nse:infy

问题是这个只返回单个股票的报价,而不是像以前那样返回多个股票...

有人知道如何使用此 URL 获取多只股票的股票报价吗? 当我这样尝试时:

http://finance.google.com/finance/?client=ig&q=nse:infy,nse:ashokley

它仍然返回一些 json,说明两只股票都是活跃的。但它不会包括引号等...... 非常感谢任何帮助。

或者如果无法从这里获取,请指点我到另一个可以获取类似股票的 OHLCV 数据的地方。

2018 年 8 月 4 日更新 谷歌实时盘中回填也已停止工作。下面的 URL 将重定向到符号的谷歌搜索页面。

https://finance.google.com/finance/getprices?p=1d&f=d,o,h,l,c,v&q=NIFTY&x=NSE&i=60

最佳答案

正如彼得所说,Google Finance API 将于 2012 年 10 月关闭。Google 让服务器正常运行,而没有支持或监控它们。如 Jeff Nelson here 所述,当发现重大错误或安全漏洞时,他们将关闭服务器.

您可以使用 Yahoo Finance 获取多个股票代码的价格,如下所示:http://finance.yahoo.com/d/quotes.csv?s=AAPL+GOOG+MSFT&f=snbaopl1

谷歌代码: https://finance.google.com/finance?q=NASDAQ:AAPL&output=json

或者您可以使用 Google Realtime Intraday Backfill Data .

这是关于上述 google api 的概述,因为它有点棘手。 我将使用您在评论中写的网址: https://www.google.com/finance/getprices?q=.NSEI&x=NSE&i=600&p=1d&f=d,o,h,l,c,v

这里的参数 i(interval) = 600 秒 = 10 分钟。

第一列(日期)的一个棘手位具有完整和部分时间戳。(请检查图像中的注释)

第一行的时间戳=1504669800。图像中数据集中的第二行的间隔为1。您可以将此数字乘以我们的间隔大小(本例中为600 s)并将其添加到最后一个Unix时间戳。这为您提供了当前行的日期。 (所以我们的第二排是在第一排之后 10 分钟。很简单。)

1504669800 + (1 * 600) = 1504670400 -> timestamp for second row
1504670400 + (2 * 600) = 1504671600 -> timestamp for Third row ... and so on.

最后一行(在底部)具有最高的日期和最新的刻度。

在任何编程语言中都可以很容易地将 unix 时间戳转换为格式化的日期,php 示例:

<?php
$timestamp=1504669800;
echo gmdate("Y-m-d\TH:i:s\Z", $timestamp);
?>

Online Convertor Here

希望对您有所帮助。

https://stackoverflow.com/questions/46070126/

相关文章:

json - 如何找出实际安装了哪个版本的 bower 包?

json - 如何将有向无环图 (DAG) 存储为 JSON?

json - 使用新参数 ExtJs Ext.data.JsonStore 重新加载 json 存储

json - 我可以使用哪些程序来可视化 JSON 文件?

javascript - Sequelize - 如何仅返回数据库结果的 JSON 对象?

json - 如何解析/反序列化动态 JSON

java - 如何使用 gson 调用默认反序列化

java - 如何防止 Gson 将长数字(一个 json 字符串)转换为科学记数法格式?

c++ - 使用 boost 属性树读取 int 数组

java - 使用 JAX-RS 将 JSON 查询参数转换为对象