Wie kann ich mit der Google Finance API Börsenkurse erhalten?


119

Ich suche nach Zugriff auf Finanzdaten von Google-Diensten.

Ich habe diese URL gefunden , die die Bestandsdaten für Microsoft abruft.

Welche möglichen Parameter erlaubt Google für diese Art von HTTP-Anfrage? Ich würde gerne all die verschiedenen Informationen sehen, die ich bekommen könnte.


36
Wie haben Sie diese URL gefunden?
Timmyc

2
Sie können Google Finance-Daten einfach über YQL abrufen, das einfach und REST-basiert ist. Ein Beispiel finden Sie hier: jarloo.com/google-finance-and-yql
Kelly

Dies ist eine großartige Frage. Gibt es weitere Antworten, die aktuell sind?
NickO

1
@ Timmyc- Das client=igParametet lässt mich glauben, dass dies für ein iGoogle-Widget verwendet wird / wurde. Nur eine Vermutung.
Dana

Beachten Sie, dass die Verwendung der Google Finance-API gegen die Nutzungsbedingungen von Google verstößt, wenn Ihre Anwendung für den öffentlichen Gebrauch bestimmt ist . @timmyc: Der &clientParameter ist nicht erforderlich. Finance.google.com/finance/info?q=NASDAQ%3aMSFT funktioniert.
Dan Dascalescu

Antworten:


40

Es gibt eine ganze API zum Verwalten von Portfolios. * Link entfernt. Google stellt hierfür keine Entwickler-API mehr zur Verfügung.

Aktienkurse zu bekommen ist etwas schwieriger. Ich habe einen Artikel gefunden, in dem jemand mithilfe von Google Spreadsheets Börsenkurse erhalten hat.

Sie können die Gadgets auch verwenden, aber ich denke, das ist nicht das, wonach Sie suchen.

Die von Ihnen erwähnte API ist interessant, scheint aber nicht dokumentiert zu sein (soweit ich sie ohnehin finden konnte).

Hier finden Sie einige Informationen zu historischen Preisen , nur als Referenz.


5
Es gibt eine undokumentierte API von Google, mit der Sie Bestandsinformationen viel einfacher abrufen können, da sie REST-basiert ist und keine Authentifizierung erfordert. Hier ist ein C # Beispiel jarloo.com/google-stock-api
Kelly

24
Hinweis: Die Google Finance API ist seit dem 26. Mai 2011 offiziell veraltet und wird am 20. Oktober 2012 geschlossen.
shawnwall

Diese Antwort ist größtenteils nicht zum Thema. Die Antwort darunter ist die richtige.
Dan Dascalescu

74

1
Dies führte mich genau zu dem, wonach ich suchte! Vielen Dank.
Grizzly Peak Software

Aber ich kann das Volumen nicht über diese URL handeln lassen. Können Sie mir helfen, wenn ich auch die Volumendetails benötige
Sashi Kant

@ DanDascalescu Danke Dan. Sieht so aus, als wäre es gerade ausgefallen, als ich es überprüft habe. Kommentar gelöscht.
Jpgeek

2
Vielen Dank, heute noch relevant im September 2016
CleanBold

5
Ich bin traurig zu sagen, dass diese Links ab September 2017 404ing sind.
St. John Johnson

17

Ich fand diese Seite hilfreich.

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

Es verlinkt auf eine API, die Yahoo zu bieten scheint und die sehr einfach und nützlich ist.

Zum Beispiel:

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

Alle Details hier:

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


In Yahoo, um das mit Locken zu bekommen curl -L "http://finance.yahoo.com/d/quotes.csv?s=msft&f=sl1d1t1c1ohgv&e=.csv". In Curl -Lwird benötigt, sonst funktioniert es nicht
arulraj.net

9

Bearbeiten: Der API-Aufruf wurde von Google entfernt. es funktioniert also nicht mehr.

Stimmen Sie der Antwort von Pareshkumar zu. Jetzt gibt es einen Python-Wrapper googlefinance für den URL-Aufruf.

Installieren Sie googlefinance

$pip install googlefinance

Es ist einfach, den aktuellen Aktienkurs zu erhalten:

>>> 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 Finance ist eine Quelle, die Bestandsdaten in Echtzeit bereitstellt. Es gibt auch andere APIs von Yahoo, wie z. B. Yahoo Finance , die sich jedoch für NYSE- und NASDAQ-Aktien um 15 Minuten verzögern.


schöne Echtzeit, wonach ich gesucht habe!
Eusoubrasileiro


3

Aufbauend auf den Schultern von Riesen ... hier ist ein Einzeiler, den ich geschrieben habe, um alle aktuellen Bestandsdaten von Google in lokale Bash-Shell-Variablen zu zappen:

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"

Dann stehen Variablen wie $ GF_last $ GF_open $ GF_volume usw. zur Verfügung. Führen Sie env aus oder sehen Sie in /tmp/stockprice.tmp.log nach

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.

Für stock="FBM" /tmp/stockprice.tmp.log (und Ihre Umgebung) enthält Folgendes :

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"; 

Kann ich die URL für einen Börsenkurs in Echtzeit verwenden?
Sashi Kant

Meistens ja. Vergleichen Sie GF_trade_time_utcmit der aktuellen Uhrzeit / Datum und Sie sind der Richter.
Marcos

Vielen Dank für Ihre Antwort, aber hier kommt das Volumen nicht in den JSON. Gibt es eine andere Möglichkeit oder URL, um das Volumen zu handeln?
Sashi Kant


3

Das Problem mit Yahoo- und Google-Daten besteht darin, dass sie gegen die Nutzungsbedingungen verstoßen, wenn Sie sie für kommerzielle Zwecke verwenden. Wenn Ihre Website / App noch klein ist, ist es kein großes Problem, aber sobald Sie ein wenig wachsen, werden Sie von den Börsen ausgeschlossen. Ein Beispiel für eine lizenzierte Lösung ist FinancialContent: http://www.financialcontent.com/json.php oder Xignite


2

Hier ist ein Beispiel, das Sie verwenden können. Havent hat Google Finance noch nicht, aber hier ist das Yahoo-Beispiel. Sie benötigen das HTMLAgilityPack , das fantastisch ist. Glückliche Symboljagd.

Rufen Sie die Prozedur mit auf YahooStockRequest(string Symbols);

Wobei Symbole = eine durch Kommas getrennte Zeichenfolge oder nur ein Symbol

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

Der einfachste Weg, wie Sie erklärt haben, ist dieser Link für 'Dow Jones Industrial Average'.

Link 2 ist für 'NASDAQ-100'

und für alle im Zusammenhang mit NASDAQ Link 3

Ich denke, das sollte es sein, sonst möchten Sie dasselbe in JSON-Notationen genauso wie Microsoft

Bitte beziehen Sie sich auf diesen alten Beitrag. Ich denke, das wird helfen.

Aktualisieren:

Um die Details des Volumes und andere Details zu kennen, habe ich ein vbscript erstellt, das das IE-Objekt verwendet, um Details vom Link abzurufen, und den Inhalt in der bestimmten ID benachrichtigt (Erstellen Sie eine .vbs-Datei und führen Sie sie aus.

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

Dadurch werden die Werte von dieser Seite wie folgt benachrichtigt

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

Ich bin sicher, das wird helfen ..


Vielen Dank für Ihre Antwort. Aber ich brauche die Echtzeitdaten in json zusammen mit dem gehandelten Volumen. Gibt es irgendwelche Restdienste?
Sashi Kant

1
Bitte beachten Sie dies , um Informationen über Echtzeit, in der Regel bieten diese Links reatime Daten mit einigen Ausnahmen .. google.com/googlefinance/disclaimer/#realtime
Marmik

Nochmals vielen Dank, Bruder. Dieser war wirklich hilfreich, aber wie kann ich trotzdem die Volumeninformationen erhalten?
Sashi Kant

1
Wenn Sie VBA oder VBS auf der Seite ( google.com/… ) kennen, lautet die ID des Elements 'market-data-div', dass div 2 weitere Divs enthält, und das zweite div enthält die Tabelle, die ein solches Volumen enthält <td class="val">759.30M</td>. Wenn Sie weitere Hilfe benötigen, geben Sie bitte einen Code für Ihre Arbeit an.
MarmiK

Nein, Sir, Sie haben keine Ahnung von VBA oder VBS, werden dies aber auf jeden Fall überprüfen. Können Sie mir die URL geben, die zum Aktienkurs in Echtzeit zusammen mit Volumeninformationen führt?
Sashi Kant


1

Versuchen Sie Folgendes : http://finance.google.com/finance/info?client=ig&q=NASDAQ:GOOGL

Sie erhalten alle verfügbaren Details zum genannten Bestand zurück.

zB würde die Ausgabe wie folgt aussehen:

// [ {
"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"
}
]

Sie können Ihr Unternehmensaktiensymbol am Ende dieser URL haben, um die Details zu erhalten:

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

0

Um Diagrammdaten mithilfe der Finanzdaten-API von Google zu finden, müssen Sie einfach zu Google gehen, als ob Sie nach einem Suchbegriff suchen, Finanzen in die Suchmaschine eingeben, und ein Link zu Google Finanzen wird angezeigt. Geben Sie in der Google Finance-Suchmaschine den Tickernamen in die Finanzdaten-API-Engine ein. Das Ergebnis wird angezeigt. Es ist jedoch zu beachten, dass alle Google-Finanzdiagramme um 15 Minuten verzögert sind und höchstens zum besseren Verständnis der Vergangenheit des Tickers und nicht des aktuellen Preises verwendet werden können.

Eine Lösung für die verzögerten Diagramminformationen besteht darin, eine Echtzeit-Finanzdaten-API zu erhalten. Ein Beispiel hierfür ist die Barchartondemand-Oberfläche mit Angebotsinformationen in Echtzeit sowie weiteren detaillierten Funktionen, die es einfacher machen, das genaue Diagramm zu finden, nach dem Sie suchen. Mit vollständig anpassbaren Funktionen und spezifischen Programmiertools für die genauen Handelsinformationen, die Sie benötigen, übertreffen die Tools von barchartondemand Google Finance bei weitem.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.