Est-ce que Yahoo finance Web service a disparu? API a changé? Temporaire?
depuis un certain temps, j'utilise L'API REST suivante pour interroger Yahoo finance sur les prix courants. Elle est documentée dans plusieurs messages de débordement de pile, par exemple Yahoo finance webservice et ailleurs dans yahoo-finance .
http://finance.yahoo.com/webservice/v1/symbols/$SYMBOLS/quote?format=json
où $ SYMBOLS est une liste délimitée par une virgule de symboles d'actions ou d'index.
hier la requête a cessé de fonctionner, rendant seulement un "déplacé temporairement. Redirection vers ..." message.
ce service web est-il maintenant fermé? A-t-il été remplacé par YQL ou une autre API? Les requêtes pour un tableau des prix historiques à "ichart" fonctionnent toujours. Par exemple,
http://ichart.finance.yahoo.com/table.csv?d=2&e=3&f=2016&g=d&a=0&b=1&c=2011&ignore=.csv&s=$SYMBOL
Merci.
9 réponses
je faisais face à une question similaire des 2-3 derniers jours. L'url fonctionne sur le smartphone, où sur le bureau, cela donne "Pas d'erreur" paramètre et Code HTTP 406.
cela peut être résolu en ajoutant user agent comme" Mozilla/5.0 (Linux; Android 6.0.1; MotoG3 Build/MPI24.107-55) AppleWebKit/537.36 (KHTML, comme Gecko) Chrome/51.0.2704.81 Safari Mobile/537.36" tout en invoquant la requête get.
Par exemple, si vous téléchargez à partir de curl en php utiliser comme suit:
curl_setopt($session,CURLOPT_USERAGENT,"Mozilla/5.0 (Linux; Android 6.0.1; MotoG3 Build/MPI24.107-55) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.81 Mobile Safari/537.36");
j'espère que cela va résoudre le problème.
j'ai eu le même problème. Voici l'URL de L'API pour tirer le stock de YAHOO. Espérons que cette aide.
https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22YHOO%22)&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=
depuis que le service est en panne, j'utilise L'URL suivante pour interroger les données Yahoo (pour ACA.PA):
le résultat JSON est différent mais j'ai trouvé les informations qui m'intéressent.
pour plus d'information, visitez la page https://developer.yahoo.com/yql /
Oui, On dirait Yahoo! a abandonné L'API (privée, la plupart du temps-non documentée) Yahoo Finance sur laquelle beaucoup comptent depuis des années pour les données sur les devises. Nous avons reçu des notifications à ce sujet au cours des dernières 24 heures. (edit: Toutes les réponses semblent être de retour "Not a valid parameter"
. Je suppose qu'il y a une chance qu'ils le rallument, mais ils ne supportent pas officiellement cette API n'importe où autant que je peux dire.)
j'ai créé Ouvrir les Taux de Change il y a environ cinq ans, et notre API de taux de change supporte maintenant une communauté de dizaines de milliers de développeurs - et leurs dizaines de millions d'utilisateurs - avec des informations précises et à jour.
n'hésitez pas à consulter notre service gratuit à https://openexchangerates.org .
notre API est dans un format JSON simple et original, qui a en fait pris comme une méthode standard pour afficher les taux parce que c'est tellement simple de travailler avec (contrairement à L'API Yahoo, qui vous a demandé d'analyser les objets obscurs imbriqués pour extraire les informations de base dont vous aviez besoin...)
si vous avez besoin d'aide pour le portage du Yahoo déprécié! API, nous serons heureux de vous aider par e-mail.
(je suis le fondateur de Open Exchange Rates.)
je suis l'auteur de ValueViz sur github .
prix quotidiens
vous devez vous familiariser avec les services de repos.
https://quantprice.herokuapp.com/api/v1.1/scoop/day?tickers=MSFT&date=2017-06-09
prix historiques
vous devez fournir une plage de dates:
https://quantprice.herokuapp.com/api/v1.1/scoop/period?tickers=MSFT&begin=2012-02-19&end=2012-02-20
si vous ne fournissez pas begin ou end, il utilisera la date la plus ancienne ou actuelle:
https://quantprice.herokuapp.com/api/v1.1/scoop/period?tickers=MSFT&begin=2012-02-19
"151950920 Multiples" tickers
vous pouvez juste virgule séparate tickers:
https://quantprice.herokuapp.com/api/v1.1/scoop/period?tickers=IBM,MSFT&begin = 2012-02-19
Taux limite
toutes les demandes sont limitées à 10 demandes par heure. Si vous souhaitez vous inscrire pour une API d'accès complet, envoyez-moi DM sur twitter. Vous recevrez une clé API à ajouter à L'URL.
nous sommes en train de créer un compte paypal pour abonnement payant sans taux.
liste des titres disponibles
https://github.com/robomotic/valueviz/blob/master/scoop_tickers.csv
je travaille aussi à fournir des données fondamentales et des données d'entreprise à partir D'EDGAR. Acclamation.
il redirige vers la même page, mais en ajoutant le paramètre" bypass=true", ce qui donne une erreur.
EDIT: La réponse donnée par https://stackoverflow.com/users/6593038/hemant-prasad travaille pour moi. Lorsque vous changez l'agent utilisateur en un appareil mobile, L'API fonctionne correctement et ne redirige pas jusqu'à présent.
C'est le code que J'utilise en Java (c'est pour la version XML, mais il peut aussi être utilisé pour JSON)):
URL url = new URL ("https://finance.yahoo.com/webservice/v1/symbols/" + stocks + "/quote");
HttpURLConnection urlc = (HttpURLConnection) url.openConnection ();
urlc.setRequestProperty ("User-Agent", "Mozilla/5.0 (Linux; Android 6.0; MotoE2(4G-LTE) Build/MPI24.65-39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.81 Mobile Safari/537.36");
Document xml = DocumentBuilderFactory.newInstance ().newDocumentBuilder ().parse (urlc.getInputStream ());
découvrez cet excellent emballage API, disponible sur NuGet: https://github.com/salmonthinlion/YahooFinanceApi
Obtenir des cotations boursières
var quotes = await Yahoo.Symbol("AAPL", "GOOG").Tag(Tag.LastTradePriceOnly, Tag,ChangeAndPercentChange, Tag.DaysLow, Tag.DaysHigh).GetAsync();
var aapl = quotes["AAPL"];
var price = aapl[Tag.LastTradePriceOnly];
obtenir des données historiques pour un stock
// You should be able to query data from various markets including US, HK, TW
var history = await Yahoo.GetHistoricalAsync("AAPL", new DateTime(2016, 1, 1), new DateTime(2016, 7, 1), Period.Daily);
foreach (var candle in history)
{
Console.WriteLine($"DateTime: {candle.DateTime}, Open: {candle.Open}, High: {candle.High}, Low: {candle.Low}, Close: {candle.Close}, Volume: {candle.Volume}, AdjustedClose: {candle.AdjustedClose}");
}
obtenez l'historique des dividendes pour une action
// You should be able to query data from various markets including US, HK, TW
var dividendHistory = await Yahoo.GetHistoricalDividendsAsync("AAPL", new DateTime(2016, 1, 1), new DateTime(2016, 7, 1));
foreach (var candle in dividendHistory)
{
Console.WriteLine($"DateTime: {candle.DateTime}, Dividend: {candle.Dividend}");
}
j'ai trouvé un moyen d'utiliser l'API csv.
où vous devez écrire le symbole, les paramètres et les colonnes.
utilisez ce site pour trouver les paramètres nécessaires: http://www.jarloo.com/yahoo_finance /
exemple:
si vous avez besoin de connaître le volume du symbole
remplacer la chaîne sl1d1t1c1ohgv
par v
et remplacer les colonnes symbol%2Cprice%2Cdate%2Ctime%2Cchange%2Ccol1%2Chigh%2Clow%2Cvolume
par volume
Le seul problème est que les données sont un peu aléatoires et ne sont pas en temps réel comme il était dans le webservice API
le Python Yahoo Finance API semble avoir un problème aussi. Si vous l'utilisez pour rechercher, par exemple, Amazon le prix des actions lui montre les deux mêmes valeurs.
from yahoo_finance import Share import time f = open('/tmp/amazon/amzn.csv', 'w') while True:
amzn=Share("AMZN")
s = amzn.get_price() + "," + amzn.get_trade_datetime() + '\n'
print (s)
f.write (s)
f.flush()
time.sleep(5)
del amzn