使用Excel中的Webservice功能来提取"下一个收益日期"来自Yahoo Finance使用Yahoo API

时间:2014-12-31 13:38:05

标签: excel vba api

我正在尝试将Yahoo Finance中的信息提取到我的电子表格中。我可以从雅虎财经中获取一些信息,例如当前股票价格,但我还想提供有关何时"下一个收益日期"将是一家公司。 例如,我能够使用此功能获取Google的当前股票价格:

=NUMBERVALUE(WEBSERVICE("http://finance.yahoo.com/d/quotes.csv?s=GOOG&f=l1"))

雅虎有一些内置的API,列在这个网站上:https://greenido.wordpress.com/2009/12/22/yahoo-finance-hidden-api/

但是,我没有看到下一个收益日期的API。有关如何将此类信息提取到电子表格中的任何建议?我知道一些基本的VBA,但我不熟悉使用VBA查询Web数据。有人知道这样做的方法吗?

谢谢!如果您有任何疑问,请告诉我。

1 个答案:

答案 0 :(得分:4)

根据您为API提供的文档,您正在寻找的数据在Yahoo Finance API中不可用。因为雅虎不提供这些数据,所以你实际上需要找到一个不同的API,而不是试图通过VBA解决问题。

StackOverflow上的其他人似乎也遇到了同样的挑战(获取下一个收益日期数据)。这是主题:Free API or similar to get Next Earnings Date for stocks

或者,您可以使用KimonoLabsScrapy等服务构建自己的API并获取下一个收入日期。

例如,我刚刚使用Kimono构建了此API:https://www.kimonolabs.com/api/bq0hsy5y?apikey=30ef2f027c78a399898ac016d22dc0e1&s=goog

要使用此API,只需将s=goog替换为s=[INSERT STOCK SYMBOL]

即可

使用此URL,您将获得带有2个集合的JSON:

  • 收藏品1
    • 衡量(包含您想要的信息的标题,如“下一个收入日期:”
    • 数据(包含实际信息)
  • 收藏2
    • StockName(包含股票的全名和符号)

尽管WEBSERVICE()函数很酷,但它似乎无法利用KimonoLabs API(它无法解析JSON和我无法让API返回XML)。相反,您可以使用PowerQuery获取所需的信息。以下是如何做到这一点的一个很好的演练:http://southbaydba.com/2013/08/30/part-3-power-query-api-table-as-parameter-for-a-query-indeed/

我希望这有帮助!