从雅虎财经获取数据

45

我阅读了关于YQL的信息,但我不知道如何获取所有公司的简单数据(例如公司代码、市值、股价等)?

另外一个问题是,我该如何获取所有可以通过YQL查询的雅虎财务表格及其字段?


你真的可以商业使用这些数据吗?我不确定,请阅读:http://meumobi.github.io/stocks%20apis/2016/03/13/get-realtime-stock-quotes-yahoo-finance-api.html - Christophe Roussy
4个回答

64

关于您的第一个问题,您不能通过YQL查询所有公司的数据。它更倾向于获取较小查询的数据。 (也就是说,它不会为您提供整个Yahoo!Finance数据库的完整数据转储。)

关于您的第二个问题,以下是如何开始探索YQL中的Yahoo!Finance表:

  1. YQL控制台开始
  2. 在左上角,确保选中“显示社区表”复选框
  3. 在搜索字段中键入finance
  4. 您将看到所有Yahoo Finance表(约15个)

然后,您可以尝试一些示例查询,例如下面的查询:

select * from yahoo.finance.quote where symbol in ("YHOO","AAPL","GOOG","MSFT")

更新时间 2016-04-04:以下是当前屏幕截图,显示必须单击的“显示社区表”复选框的位置,以查看这些财务表格:enter image description here


6
YQL发生了一些变化。复选框将社区表格显示在左侧。 - Crocode
7
我现在只看到finance下面的finance.scrape.trend,但它并不能提供市值、描述等信息... - jcalfee314
1
@Ashwin 你可以通过查询 yahoo.finance.quoteslist 表来获取股票交易所信息。以下是我正在运行且效果良好的查询语句:select * from yahoo.finance.quoteslist where symbol in ("^IXIC", "^NYA", ^DJI") &format=json &diagnostic=true &env=store://datatables.org/alltableswithkeys请确保您还对查询 URL 进行了 URL 编码。 - Laurent Rivard
有没有一种查询可以帮助收集前一天每小时的价格? - Udi
2
为了明确起见,您需要在左侧边栏中勾选“显示社区表”选项,以允许访问 yahoo.finance.* 表。 - airstrike
显示剩余6条评论

29

根据BrianC的回答,可以使用YQL控制台。但是在选择“显示社区表”后,转到表列表底部并展开Yahoo,在那里您会发现大量的Yahoo.finance表:

股票行情:

  • yahoo.finance.quotes
  • yahoo.finance.historicaldata

基本面分析:

  • yahoo.finance.keystats
  • yahoo.finance.balancesheet
  • yahoo.finance.incomestatement
  • yahoo.finance.analystestimates
  • yahoo.finance.dividendhistory

技术分析:

  • yahoo.finance.historicaldata
  • yahoo.finance.quotes
  • yahoo.finance.quant
  • yahoo.finance.option*

一般财务信息:

  • yahoo.finance.industry
  • yahoo.finance.sectors
  • yahoo.finance.isin
  • yahoo.finance.quoteslist
  • yahoo.finance.xchange

2017年11月2日:Yahoo Finance显然已经终止了这个API,有关更多信息和替代资源,请参见https://news.ycombinator.com/item?id=15616880


1
看起来调用yahoo.finance.historical和yahoo.finance.dividendhistory的功能不再起作用了。这是因为这些表不再公开吗? - hipokito
1
@hyprfrcb 雅虎财经已经停用了这个API。 - ronnydw


1
自从雅虎金融API被禁用后,我找到了Alpha Vantage API
这是我正在使用Excel的Power Query进行股票查询的样例:
https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol=MSFT&interval=15min&outputsize=full&apikey=demo

有一个关于通过Alpha Vantage调用exchange:symbol的问题。以下是有效的:https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=NSE:TATAMOTORS&interval=1min&apikey=xxxx但以下无效:https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol=NSE:TATAMOTORS&interval=1min&apikey=xxxx请问能否解释一下原因? - Karan Bhandari
@KaranBhandari:不确定它是否适用于 NSE 股票。 - rahul.deshmukhpatil
确保您拥有有效的密钥。根据您提供的链接,似乎没有。注册只需要不到一分钟的时间。他们的文档非常详细地解释了每个步骤。 - Victor Oliveira
拥有有效的密钥,我以为API密钥是机密的。没有分享过。 - Karan Bhandari
看一下第一个链接 - 响应 NSE - Karan Bhandari

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接