如何使用Google Finance API获取股票报价?

我正在寻找来自Google服务的财务数据。

我发现这个URL可以获取微软的股票数据。

Google允许这种HTTP请求的所有可能的参数是什么? 我想看看我能得到的所有不同的信息。

有一个完整的API来pipe理投资组合。 *链接删除。 Google不再为此提供开发者API。

获得股票报价有点困难。 我find了一篇文章,有人用Google Spreadsheets获得了股票报价。

你也可以使用小工具,但我想这不是你所追求的。

你提到的API是有趣的,但似乎没有logging(据我所能find的)。

以下是一些有关历史价格的信息,仅供参考。

Google Finance Gadget API 自2012年10月起正式被弃用 ,但截至2014年4月,它仍然活跃:

http://www.google.com/finance/info?q=NASDAQ:GOOG
http://www.google.com/finance/info?q=CURRENCY:GBPUSD
http://finance.google.com/finance/info?client=ig&q=AAPL,YHOO

您还可以获取图表: https : //www.google.com/finance/getchart?q = YELP

请注意,如果您的应用程序用于公共消费,则使用Google Finance API违反了Google的服务条款 。

在python中查看完整的代码的google-finance-get-stock-quote-realtime

我发现这个网站很有帮助。

http://benjisimon.blogspot.com/2009/01/truly-simple-stock-api.html

它链接到一个API雅虎似乎提供这是非常简单和有用的。

例如:

http://finance.yahoo.com/d/quotes.csv?s=GOOG+AAPL&f=snl1

全部细节在这里:

http://www.gummy-stuff.org/Yahoo-data.htm

编辑:API调用已被删除谷歌。 所以它不再运作。

同意Pareshkumar的回答。 现在有一个用于url调用的python包装器googlefinance 。

安装googlefinance

 $pip install googlefinance 

很容易得到当前的股票价格:

 >>> from googlefinance import getQuotes >>> import json >>> print json.dumps(getQuotes('AAPL'), indent=2) [ { "Index": "NASDAQ", "LastTradeWithCurrency": "129.09", "LastTradeDateTime": "2015-03-02T16:04:29Z", "LastTradePrice": "129.09", "Yield": "1.46", "LastTradeTime": "4:04PM EST", "LastTradeDateTimeLong": "Mar 2, 4:04PM EST", "Dividend": "0.47", "StockSymbol": "AAPL", "ID": "22144" } ] 

Google财务是提供实时股票数据的来源。 雅虎还有其他的API,比如雅虎财经 ,但是纽约证券交易所和纳斯达克股票延迟了15分钟。

也许感兴趣的是,Google Finance API文档包含一个详细介绍如何通过JavaScript访问不同参数的部分 。

我想JavaScript API可能是上面提到的JSON请求的包装器……也许你可以检查发送的HTTP请求。

build立在巨人的肩膀上…这里是我写的所有谷歌的当前股票数据变成本地Bash shellvariables的一行:

 stock=$1 # Fetch from Google Finance API, put into local variables eval $(curl -s "http://www.google.com/ig/api?stock=$stock"|sed 's/</\n</g' |sed '/data=/!d; s/ data=/=/g; s/\/>/; /g; s/</GF_/g' |tee /tmp/stockprice.tmp.log) echo "$stock,$(date +%Y-%m-%d),$GF_open,$GF_high,$GF_low,$GF_last,$GF_volume" 

那么你将有像GF_last $ GF_open $ GF_volume等variables随时可用。 运行env或在/tmp/stockprice.tmp.log中查看

 http://www.google.com/ig/api?stock=TVIX&output=csv by itself returns: <?xml version="1.0"?> <xml_api_reply version="1"> <finance module_id="0" tab_id="0" mobile_row="0" mobile_zipped="1" row="0" section="0" > <symbol data="TVIX"/> <pretty_symbol data="TVIX"/> <symbol_lookup_url data="/finance?client=ig&amp;q=TVIX"/> <company data="VelocityShares Daily 2x VIX Short Term ETN"/> <exchange data="AMEX"/> <exchange_timezone data="ET"/> <exchange_utc_offset data="+05:00"/> <exchange_closing data="960"/> <divisor data="2"/> <currency data="USD"/> <last data="57.45"/> <high data="59.70"/> <low data="56.85"/> etc. 

所以对于stock="FBM" /tmp/stockprice.tmp.log (和你的环境)将包含:

 GF_symbol="FBM"; GF_pretty_symbol="FBM"; GF_symbol_lookup_url="/finance?client=ig&amp;q=FBM"; GF_company="Focus Morningstar Basic Materials Index ETF"; GF_exchange="NYSEARCA"; GF_exchange_timezone=""; GF_exchange_utc_offset=""; GF_exchange_closing=""; GF_divisor="2"; GF_currency="USD"; GF_last="22.82"; GF_high="22.82"; GF_low="22.82"; GF_volume="100"; GF_avg_volume=""; GF_market_cap="4.56"; GF_open="22.82"; GF_y_close="22.80"; GF_change="+0.02"; GF_perc_change="0.09"; GF_delay="0"; GF_trade_timestamp="8 hours ago"; GF_trade_date_utc="20120228"; GF_trade_time_utc="184541"; GF_current_date_utc="20120229"; GF_current_time_utc="033534"; GF_symbol_url="/finance?client=ig&amp;q=FBM"; GF_chart_url="/finance/chart?q=NYSEARCA:FBM&amp;tlf=12"; GF_disclaimer_url="/help/stock_disclaimer.html"; GF_ecn_url=""; GF_isld_last=""; GF_isld_trade_date_utc=""; GF_isld_trade_time_utc=""; GF_brut_last=""; GF_brut_trade_date_utc=""; GF_brut_trade_time_utc=""; GF_daylight_savings="false"; 

这不再是一个谷歌的主动API,你可以尝试Xignite,虽然他们收取: http : //www.xignite.com

雅虎和Google数据的问题在于,如果您将其用于商业用途,则违反了服务条款。 当你的网站/应用程序仍然很小,这不是什么大事,但是一旦你长大一点,你就会开始停止交stream。 获得许可的解决scheme示例是FinancialContent: http : //www.financialcontent.com/json.php或Xignite

这是一个可以使用的例子。 还没有得到Google财经,但这是雅虎例子。 您将需要HTMLAgilityPack ,这是真棒。 快乐符号狩猎。

通过使用YahooStockRequest(string Symbols);调用过程YahooStockRequest(string Symbols);

凡符号=逗号分隔符号的string,或只是一个符号

 public string YahooStockRequest(string Symbols,bool UseYahoo=true) { { string StockQuoteUrl = string.Empty; try { // Use Yahoo finance service to download stock data from Yahoo if (UseYahoo) { string YahooSymbolString = Symbols.Replace(",","+"); StockQuoteUrl = @"http://finance.yahoo.com/q?s=" + YahooSymbolString + "&ql=1"; } else { //Going to Put Google Finance here when I Figure it out. } // Initialize a new WebRequest. HttpWebRequest webreq = (HttpWebRequest)WebRequest.Create(StockQuoteUrl); // Get the response from the Internet resource. HttpWebResponse webresp = (HttpWebResponse)webreq.GetResponse(); // Read the body of the response from the server. HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); string pageSource; using (StreamReader sr = new StreamReader(webresp.GetResponseStream())) { pageSource = sr.ReadToEnd(); } doc.LoadHtml(pageSource.ToString()); if (UseYahoo) { string Results=string.Empty; //loop through each Symbol that you provided with a "," delimiter foreach (string SplitSymbol in Symbols.Split(new char[] { ',' })) { Results+=SplitSymbol + " : " + doc.GetElementbyId("yfs_l10_" + SplitSymbol).InnerText + Environment.NewLine; } return (Results); } else { return (doc.GetElementbyId("ref_14135_l").InnerText); } } catch (WebException Webex) { return("SYSTEM ERROR DOWNLOADING SYMBOL: " + Webex.ToString()); } } } 

道琼斯工业平均指数(Dow Jones Industrial Average)

链接2是用于“纳斯达克100”

并为所有有关纳斯达克的链接3

我认为这应该是这样,否则你想在微软相同的JSON符号

请参考这个老post,我认为这会有所帮助,

更新:

要知道音量和其他细节的细节,我已经创build了一个使用IE对象从链接中获取细节的VBScript,并警告特定ID的内容(创build一个.vbs文件并运行..

 Set IE = CreateObject("InternetExplorer.Application") while IE.readyState = 4: WScript.Sleep 10: wend IE.Navigate "https://www.google.com/finance?q=INDEXNASDAQ%3ANDX&sq=NASDAQ&sp=2&ei=B3UoUsiIH5DIlgPEsQE" IE.visible = true while IE.readyState = 4: WScript.Sleep 10: wend dim ht ht= IE.document.getElementById("market-data-div").innerText msgBox ht IE.quit 

这会像这样提醒页面的值

 3,124.54 0.00 (0.00%) Sep 4 - Close INDEXNASDAQ real-time data - Disclaimer Range - 52 week 2,494.38 - 3,149.24 Open - Vol. 0.00 

我相信这会帮助..

试试这个: http : //finance.google.com/finance/info?client=ig&q=NASDAQ : GOOGL

它会返回有关所提到的股票的所有可用的细节。

例如输出如下所示:

// [{“id”:“694653”,“t”:“GOOGL”,“e”:“NASDAQ”,“l”:“528.08”,“l_fix”:“528.08”,“l_cur”:“528.08 “,”s“:”0“,”ltt“:”4:00 PM EST“,”lt“:”Dec 5,4:00 PM EST“,”lt_dts“:”2014-12-05T16:00:14Z“ ,“c”为“-14.50”,“c_fix”为“-14.50”,“cp”为“-2.67”,“cp_fix”为“-2.67”,“ccol”为“chr”,“pcls_fix”为“ 542.58“}]

您可以在此url的末尾添加公司股票代码,以获取其详细信息:

 http://finance.google.com/finance/info?client=ig&q=<YOUR COMPANY STOCK SYMBOL> 

为了使用Google的财务数据API查找图表数据,您必须简单地访问Google,就好像在查找search字词,在search引擎中键入finance,并且会显示Google finance的链接。 进入Google财经search引擎后,在财务数据API引擎中input股票代码名称,并显示结果。 但是,应该指出的是,所有的Google金融图表都会延迟15分钟,最多可以用来更好地理解股票的过去的历史,而不是现在的价格。

延迟图表信息的解决scheme是获得实时财务数据API。 一个例子就是barchartondemand界面,它具有实时的报价信息,以及其他详细的function,使您可以更轻松地find你正在寻找的确切的图表。 借助完全可定制的function以及针对您所需的精确交易信息的特定编程工具,barchartondemand的工具大大超出了Google财务。

Google股票报价API已经消失。 但是, 投资者交易所提供的API非常易于使用报价数据。