首页 文章

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

提问于
浏览
116

我正在寻找从Google服务访问财务数据的途径 .

我找到this URL获取微软的股票数据 .

Google允许此类HTTP请求的所有可能参数是什么?我希望看到我能得到的所有不同信息 .

13 回答

  • 3

    雅虎和谷歌数据的问题在于它违反了服务条款,如果你不是很大,但只要你稍微增长,你就会开始停止并停止交易 . 许可的解决方案示例是FinancialContent:http://www.financialcontent.com/json.phpXignite

  • 2

    有一个完整的API来管理投资组合 . *删除链接 . Google不再为此提供开发人员API .

    获得股票报价要困难一些 . 我找到一篇文章,其中有人使用Google Spreadsheets获得股票报价 .

    您也可以使用gadgets,但我想's not what you'之后 .

    您提到的API很有趣,但似乎没有记录(据我所知,无论如何) .

    以下是historical prices的一些信息,仅供参考 .

  • 0

    Google Finance Gadget API已正式deprecated since October 2012,但截至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/信息?客户= IG&q = AAPL,YHOO

    你也可以得到图表:https://www.google.com/finance/getchart?q=YELP

    Note that if your application is for public consumption, using the Google Finance API is against Google's terms of service.

    检查google-finance-get-stock-quote-realtime以获取python中的完整代码

  • 3

    我觉得这个网站很有帮助 .

    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

  • 3

    编辑:谷歌删除了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,例如yahoo-finance,但纽约证券交易所和纳斯达克股票的延迟时间为15分钟 .

  • 74

    也许有趣的是,Google Finance API文档包含a section detailing how to access different parameters via JavaScript .

    我想JavaScript API可能是您在上面提到的JSON请求的包装器...也许您可以检查正在发送的HTTP请求 .

  • 8

    Build 在巨人的肩膀上......这是我写的一个单线程,用于将Google当前的所有股票数据删除到本地Bash shell变量中:

    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等变量随时可用 . 运行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";
    
  • 3

    这不再是谷歌的有效API,你可以试试Xignite,虽然他们收费:http://www.xignite.com

  • 0

    这是一个可以使用的示例 . 还没有谷歌财务,但这是雅虎的例子 . 你需要HTMLAgilityPack,这太棒了 . 快乐的符号狩猎 .

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

    其中Symbols =以逗号分隔的符号字符串,或仅一个符号

    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());
    
                    }
    
                }
            }
    
  • 2

    你解释过的最简单的方法是link这是'Dow Jones Industrial Average'

    Link 2适用于'NASDAQ-100'

    以及与纳斯达克有关的所有link 3

    我认为这应该是它,否则你想要的JSON符号与Microsoft相同

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

    更新:

    要了解卷的细节和其他细节,我创建了一个vbscript,它使用IE对象从链接中获取详细信息,并警告特定id中的内容(创建.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
    

    我相信这会有所帮助..

  • 17

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

    它将返回有关上述库存的所有可用详细信息 .

    例如out put看起来如下:

    // [ {
    "id": "694653"
    ,"t" : "GOOGL"
    ,"e" : "NASDAQ"
    ,"l" : "528.08"
    ,"l_fix" : "528.08"
    ,"l_cur" : "528.08"
    ,"s": "0"
    ,"ltt":"4:00PM EST"
    ,"lt" : "Dec 5, 4:00PM 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>
    
  • 39

    为了使用Google的财务数据API查找图表数据,必须简单地转到Google,就像查找搜索字词一样,在搜索引擎中输入资金,然后会出现指向Google财经的链接 . 进入Google财经搜索引擎后,在财务数据API引擎中输入股票代码名称,结果将会显示 . 但是,应该注意的是,所有Google财经图表都会延迟15分钟,最多也会延迟可用于更好地了解股票代码的过去历史,而不是当前价格 .

    延迟图表信息的解决方案是获得实时金融数据API . 一个例子是barchartondemand界面,它具有实时报价信息,以及其他详细功能,使您可以更轻松地找到您正在寻找的确切图表 . 凭借完全可定制的功能和特定的编程工具,您可以获得所需的精确交易信息,barchartondemand的工具大大超越了Google财务 .

  • 1

    Google股票报价API已经消失 . 但是,Investor's Exchange offers an API非常容易用于报价数据 .

相关问题