Comment puis-je obtenir des cotations boursières à l'aide de l'API Google Finance?


119

Je recherche un accès aux données financières des services Google.

J'ai trouvé cette URL qui récupère les données boursières de Microsoft.

Quels sont tous les paramètres possibles que Google autorise pour ce type de requête HTTP? J'aimerais voir toutes les différentes informations que je pourrais obtenir.


36
Comment avez-vous trouvé cette URL?
timmyc

2
Vous pouvez facilement obtenir des données Google Finance via YQL, qui est simple et basé sur REST. Un exemple peut être trouvé ici: jarloo.com/google-finance-and-yql
Kelly

C'est une excellente question, y a-t-il d'autres réponses à jour?
NickO

1
@ Timmyc- Le client=igparamètre me porte à croire que c'est / a été utilisé pour un widget iGoogle. Juste une supposition cependant.
dana

Réponses:


40

Il existe toute une API pour gérer les portefeuilles. * Lien supprimé. Google ne fournit plus d'API développeur pour cela.

Obtenir des cotations boursières est un peu plus difficile. J'ai trouvé un article où quelqu'un a obtenu des cotations boursières à l'aide de feuilles de calcul Google.

Vous pouvez également utiliser les gadgets, mais je suppose que ce n'est pas ce que vous recherchez.

L'API que vous mentionnez est intéressante mais ne semble pas être documentée (pour autant que j'ai pu trouver de toute façon).

Voici quelques informations sur les prix historiques , juste à titre de référence.


5
Il existe une API non documentée de Google que vous pouvez utiliser pour obtenir des informations sur les stocks beaucoup plus facilement car elle est basée sur REST et ne nécessite pas d'authentification. Voici un exemple en C # jarloo.com/google-stock-api
Kelly

24
Remarque: L'API Google Finance est officiellement obsolète depuis le 26 mai 2011 et sera fermée le 20 octobre 2012.
shawnwall

Cette réponse est pour la plupart hors sujet. La réponse ci-dessous est la bonne.
Dan Dascalescu

74

1
Cela m'a conduit exactement à ce que je cherchais! Merci.
Logiciel Grizzly Peak

Mais je ne peux pas obtenir le volume échangé via cette URL, pouvez-vous m'aider, si j'ai aussi besoin des détails du volume
Sashi Kant

@DanDascalescu Merci Dan. On dirait qu'il était juste en panne lorsque je le vérifiais. Commentaire supprimé.
jpgeek

2
Merci, toujours d'actualité aujourd'hui en septembre 2016
CleanBold

5
Je suis triste de dire qu'en septembre 2017, ces liens sont 404.
St.John Johnson

17

J'ai trouvé ce site utile.

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

Il est lié à une API que Yahoo semble offrir qui est très simple et utile.

Par exemple:

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

Détails complets ici:

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


Dans Yahoo pour obtenir cela en utilisant curl curl -L "http://finance.yahoo.com/d/quotes.csv?s=msft&f=sl1d1t1c1ohgv&e=.csv". En curl -Lest nécessaire sinon cela ne fonctionnera pas
arulraj.net

9

Edit: l'appel d'API a été supprimé par google. donc il ne fonctionne plus.

D'accord avec la réponse de Pareshkumar. Il existe maintenant un wrapper python googlefinance pour l'appel d'url.

Installez googlefinance

$pip install googlefinance

Il est facile d'obtenir le cours actuel des actions:

>>> 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 est une source qui fournit des données boursières en temps réel. Il existe également d'autres API de yahoo, telles que yahoo-finance , mais elles sont retardées de 15 minutes pour les actions du NYSE et du NASDAQ.


beau temps réel, ce que je cherchais!
eusoubrasileiro


3

S'appuyant sur les épaules de géants ... voici une ligne unique que j'ai écrite pour zapper toutes les données boursières actuelles de Google dans des variables de shell Bash locales:

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"

Ensuite, vous aurez des variables comme $ GF_last $ GF_open $ GF_volume etc. facilement disponibles. Exécutez env ou voir à l'intérieur /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.

Donc, pour stock="FBM" /tmp/stockprice.tmp.log (et votre environnement) contiendra:

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

Puis-je utiliser l'URL pour une cotation boursière en temps réel?
Sashi Kant

Surtout oui. Comparez GF_trade_time_utcavec l'heure / la date actuelle et vous serez le juge.
Marcos

Merci pour votre réponse, mais ici, le volume ne vient pas dans le json, existe-t-il un autre moyen ou une autre URL pour obtenir le volume échangé?
Sashi Kant


3

Le problème avec les données Yahoo et Google est qu'elles enfreignent les conditions d'utilisation si vous les utilisez à des fins commerciales. Lorsque votre site / application est encore petit, ce n'est pas grave, mais dès que vous grandissez un peu, vous commencez à cesser et à renoncer aux échanges. Un exemple de solution sous licence est FinancialContent: http://www.financialcontent.com/json.php ou Xignite


2

Voici un exemple que vous pouvez utiliser. Havent a encore Google Finance, mais voici l'exemple Yahoo. Vous aurez besoin du HTMLAgilityPack , ce qui est génial. Chasse aux symboles heureux.

Appelez la procédure en utilisant YahooStockRequest(string Symbols);

Où Symboles = une chaîne de symboles délimités par des virgules ou un seul symbole

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

Le moyen le plus simple, comme vous l'avez expliqué, est ce lien, il s'agit de `` Dow Jones Industrial Average ''

Le lien 2 est pour 'NASDAQ-100'

et pour tout ce qui concerne le lien NASDAQ 3

Je pense que cela devrait être ça, sinon vous voulez la même chose dans les notations JSON comme Microsoft

Veuillez vous référer à cet ancien message je pense que cela vous aidera,

Mettre à jour:

Pour connaître les détails du volume et d'autres détails, j'ai créé un vbscript qui utilise un objet IE pour récupérer les détails du lien et alerte le contenu dans l'ID particulier (Créez un fichier .vbs et exécutez-le.)

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

cela alertera les valeurs de la page comme celle-ci

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

Je suis sûr que cela aidera.


Merci beaucoup pour votre réponse. Mais j'ai besoin des données en temps réel dans json avec le volume échangé, y a-t-il des services de repos?
Sashi Kant

1
Veuillez vous référer à ceci pour plus de détails sur le temps réel. En général, ces liens fournissent des données d'exécution à quelques exceptions près. Google.com/googlefinance/disclaimer/#realtime
MarmiK

Merci encore une fois mon frère, celui-ci a été vraiment utile, mais comment puis-je obtenir les informations sur le volume?
Sashi Kant

1
C'est si vous connaissez VBA ou VBS sur la page ( google.com/… ), l'id de l'élément est «market-data-div» que div contient 2 autres divs et le deuxième div a la table qui contient un volume <td class="val">759.30M</td>comme celui-ci. Si vous voulez plus d'aide, veuillez poster un code de votre travail ou un violon fera l'affaire.
MarmiK

Non Monsieur, je n'ai aucune idée de VBA ou VBS, mais je vais le vérifier définitivement.Pouvez-vous me fournir l'URL, ce qui entraîne la cotation boursière en temps réel avec des informations sur le volume?
Sashi Kant


1

Essayez ceci: http://finance.google.com/finance/info?client=ig&q=NASDAQ:GOOGL

Il vous renverra tous les détails disponibles sur le stock mentionné.

par exemple, la sortie ressemblerait à ci-dessous:

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

Vous pouvez avoir le symbole boursier de votre entreprise à la fin de cette URL pour obtenir ses détails:

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

0

Afin de trouver des données graphiques à l'aide de l'API de données financières de Google, il suffit d'aller sur Google comme si vous recherchiez un terme de recherche, tapez finance dans le moteur de recherche et un lien vers Google finance apparaîtra. Une fois sur le moteur de recherche Google Finance, saisissez le nom du ticker dans le moteur de l'API de données financières et le résultat sera affiché. Cependant, il convient de noter que tous les graphiques Google Finance sont retardés de 15 minutes et peuvent tout au plus être utilisés pour une meilleure compréhension de l'historique passé du ticker, plutôt que du prix actuel.

Une solution aux informations de graphique retardées consiste à obtenir une API de données financières en temps réel. Un exemple serait l'interface barchartondemand qui contient des informations de devis en temps réel, ainsi que d'autres fonctionnalités détaillées qui simplifient la recherche du graphique exact que vous recherchez. Avec des fonctionnalités entièrement personnalisables et des outils de programmation spécifiques pour les informations de trading précises dont vous avez besoin, les outils de barchartondemand surpassent largement Google Finance.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.