web-dev-qa-db-fra.com

L'API Google Finance ne fonctionne pas à partir du 6 / septembre / 2017

J'utilisais Google Finance API pour obtenir les cotations boursières et afficher le contenu sur mon site. Tout d'un coup, à partir du 6/septembre/2017, cela a cessé de fonctionner. L'URL que j'ai utilisée pour obtenir les cotations boursières est https://finance.google.com/finance/info?client=ig&q=SYMBOL&callback= ?.

Auparavant, j'utilisais l'API Yahoo Finance et c'était incohérent. Donc, je suis passé à l'API Google Finance.

Pourriez-vous m'aider avec ça?

Merci, Ram

9

Finalement, j'ai commencé à utiliser Yahoo Finance. Les données ne sont pas en direct, il y a un retard de 20 minutes. Je pensais que ce serait utile pour les gens qui font face à des problèmes comme moi.

L'URL de l'API Yahoo est https://query.yahooapis.com/v1/public/yql?q=select%2 *% 20from% 20yahoo.finance.quotes% 20where% 20symbol% ​​3D% 22MSFT % 22 & env = store: //datatables.org/alltableswithkeys

Cela renverra les données boursières au format xml. Vous pouvez analyser le xml pour obtenir vos champs souhaités.

Merci, Ram

2

Cette URL fonctionne. Je pense que seule l'URL est passée de www.google.com à finance.google.com

https://finance.google.com/finance/getprices?q=ACC&x=NSE&p=15&i=300&f=d,c,o,h,l,v

6
Gitesh

Nous avons eu un même problème et nous avons trouvé ci-dessous une autre API fournie par Microsoft Bing API for Stock Markets. L'API ci-dessous renvoie les données boursières au format JSON.

https://finance.services.appex.bing.com/Market.svc/ChartAndQuotes?symbols=139.1.500209.BOM&chartType=1d&isETF=false&iseod=False&lang=en-IN&isCS=false&isVol=true

Merci, Shyamal

2
Shyamal Patel

Je lisais manuellement à partir de la page Google Finance pour chaque stock avant d'obtenir le ?info lien. Comme cela ne fonctionne plus, je reviens à la page Web.

Voici mon python extrait:

def get_market_price(symbol):
    print "Getting market price: " + symbol

    base_url = 'http://finance.google.com/finance?q='

    retries = 2

    while True:
        try:
            response = urllib2.urlopen(base_url + symbol)
            html = response.read()
        except Exception, msg:
            if retries > 0:
                retries -= 1
            else:
                raise Exception("Error getting market price!")

        soup = BeautifulSoup(html, 'lxml')

        try:
            price_change = soup.find("div", { "class": "id-price-change" })
            price_change = price_change.find("span").find_all("span")
            price_change = [x.string for x in price_change]

            price = soup.find_all("span", id=re.compile('^ref_.*_l$'))[0].string
            price = str(unicode(price).encode('ascii', 'ignore')).strip().replace(",", "")

            return (price, price_change)
        except Exception as e:
            if retries > 0:
                retries -= 1
            else:
                raise Exception("Can't get current rate for scrip: " + symbol)

Exemple:

Getting market price: NSE:CIPLA
('558.55', [u'+4.70', u'(0.85%)'])
0
ATOzTOA

Vous pouvez simplement analyser le résultat de cette demande:

https://finance.google.com/finance/getprices?q=GOOG&x=NASD&p=1d&i=60&f=d,c,o,h,l,v

(GOOG au NASDAQ, un jour, fréquence 60 secondes, DATE, CLOSE, HIGH, LOW, OPEN, VOLUME)

0
Frank

J'ai dû passer à Google Finance après avoir utilisé Yahoo Finance pendant une longue période après que Verizon ait acheté Yahoo en mai et mis fin au service d'API gratuit. Je suis retourné et j'ai effectué une nouvelle recherche sur ce problème et quelqu'un a créé un nouvel appel à l'API Yahoo Finance qui fonctionne avec la nouvelle API Yahoo. https://stackoverflow.com/a/44092983/831635

La source python et l'installateur peuvent être trouvés ici: https://github.com/c0redumb/yahoo_quote_download

Les arguments sont (ticker, date_début et date_fin) où les dates sont au format aaaammjj et renvoie une liste de chaînes unicode. Le test suivant va télécharger quelques semaines de données, puis extraire uniquement le prix de clôture ajusté pour renvoyer une liste appelée adj_close:

from yahoo_quote_download import yqd
import string
quote = yqd.load_yahoo_quote('AAPL', '20170515', '20170530')
print(quote[0]) # print the column headers
print(quote[1]) # print a couple rows of data
print(quote[2]) # just to make sure it looks right
quote.pop()  # get rid of blank string at end of data
quote = [row.encode("utf-8") for row in quote]  # convert to byte data
quote = [string.split(row, ',') for row in quote] # split the string to create a list of lists
adj_close = [row[5] for row in quote]  # grab only the 'adj close' data and put into a new list
print(adj_close)

Retour:

Date,Open,High,Low,Close,Adj Close,Volume
2017-05-15,156.009995,156.649994,155.050003,155.699997,155.090958,26009700
2017-05-16,155.940002,156.059998,154.720001,155.470001,154.861862,20048500
['Adj Close', '155.090958', '154.861862', '149.662277', '151.943314', '152.461288', '153.387650', '153.198395', '152.740189', '153.268112', '153.009140', '153.068893']
0
Andrew

J'ai eu le même problème en PHP.

Je remplace l'URL https://www.google.com/finance/converter?a= $ amount & from = $ from_Currency & to = $ to_Currency

à

https://finance.google.com/finance/converter?a=1&from= $ from_Currency & to = $ to_Currency

Fonctionne bien pour moi.

0
Surya Adhikari

Je mourais d'envie de chercher un fil comme celui-ci hier quand j'ai fait face au problème!

Comme l'a dit Salketer, l'API Google Finance a été officiellement "fermée" en 2012. Cependant, pour une raison quelconque, elle fonctionnait encore jusqu'au 5 septembre 2017. J'ai construit un programme pour gérer mon portefeuille qui utilise GF API pour obtenir des cotations en direct pour les actions américaines. Elle a cessé de fonctionner le 6 septembre 2017, donc je suppose que les ingénieurs derrière "fournissant secrètement" l'API maintenant "ont" effectivement "arrêté le service.

J'ai trouvé une alternative https://www.alphavantage.co/documentation/ , et cela semble être la meilleure alternative pour des cotations d'actions américaines en direct gratuites. Ils ont juste besoin de votre e-mail, rien d'autre. C'est un peu lent car il n'a pas encore de requête multi-symboles, mais les mendiants ne peuvent pas être des sélecteurs.

0
dev-sonnyk