38 votes

Le service web de Yahoo finance a-t-il disparu ? L'API a changé ? Fermé temporairement ?

Depuis un certain temps, j'utilise l'API REST suivante pour interroger Yahoo Finance sur les prix actuels. Elle est documentée dans plusieurs articles de Stack Overflow, par ex. Service web de Yahoo finance et ailleurs dans yahoo-finance .

http://finance.yahoo.com/webservice/v1/symbols/$SYMBOLS/quote?format=json

où $SYMBOLS est une liste de symboles d'actions ou d'indices, séparés par des virgules.

Hier, la requête a cessé de fonctionner, ne renvoyant qu'un message "Moved Temporarily. Redirection vers ...".

Ce service web est-il désormais fermé ? A-t-il été remplacé par YQL ou une autre API ? Les requêtes pour un tableau de prix historiques vers "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.

0 votes

Robyn Tippins (Community Manager, YDN) : "Il semblerait que certains aient réalisé une rétroconception d'une API qu'ils utilisent pour extraire des données financières, mais ils enfreignent nos conditions d'utilisation (pas de redistribution des données financières) en faisant cela. Je vous encourage donc à éviter d'utiliser ces services Web." Les API officielles sont : developer.yahoo.com/finance "Il n'y a aucun problème à ce que vous téléchargiez les données, en supposant que vous restiez en dessous des limites tarifaires, mais vous ne pouvez pas les redistribuer".

0 votes

Vérifiez cet autre Données source de l'API

0 votes

Je recommande d'utiliser Alpha Vantage dans l'ère post-Yahoo. Ils ont une API de données boursières gratuite et cela fonctionne très bien. J'ai écrit un article de blog à ce sujet : the-data-wrangler.com/

27voto

Hemant Prasad Points 279

Je faisais face à un problème similaire depuis 2-3 jours. L'URL fonctionne sur le smartphone, alors que sur le bureau il donne l'erreur "Not a valid parameter" et le code HTTP 406.

Cela peut être résolu en ajoutant l'agent utilisateur "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" lors de l'invocation de la requête get.

Par exemple, si vous téléchargez à partir de curl en php, utilisez ce qui 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 résoudra le problème.

0 votes

S'il vous plaît, aidez-moi à comprendre un peu plus le problème, j'émets la demande de réseau à partir d'une application (avec Retrofit) et il me donne 406 NOT ACCEPTABLE réponse. Mais quand je fais la même demande de réseau par Chrome dans le téléphone, les résultats sont corrects (comme vous l'avez dit). Pourquoi l'application échoue-t-elle (elle est dans un téléphone !) ?

0 votes

Bonjour Carlos, le serveur web reconnaît que la demande provient d'un téléphone ou d'un ordinateur de bureau grâce aux informations de l'en-tête USERAGENT dans les données utiles de la demande. Ainsi, changer l'information d'en-tête USERAGENT en téléphone comme suggéré ci-dessus n'échouera pas de l'APP lors de l'envoi de la demande.

0 votes

Merci pour la clarification Hemant, effectivement cela fonctionne, je n'avais pas inclus mes en-têtes correctement dans la requête réseau. Votre solution fonctionne à 100%. Vous m'épargnez des mois de travail avec une seule ligne, sans exagérer.

6voto

Dimitri MASSA Points 253

Comme le service est hors service, j'utilise l'URL suivante pour interroger les données Yahoo (pour ACA.PA) :

Lien

Le résultat JSON est différent mais j'ai trouvé les informations qui m'intéressent.

Pour plus d'informations, visitez la page https://developer.yahoo.com/yql/

6voto

JetSet Points 97

J'ai eu le même problème. Voici l'URL de l'API permettant d'extraire des actions de YAHOO. J'espère que cela vous aidera.

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=

0 votes

@james.garriss Vous pouvez copier et coller le lien ci-dessus dans un navigateur et il renvoie toujours des données. Vous faites probablement quelque chose de mal de votre côté.

0 votes

C'est le cas. Peut-être que le service était en panne le jour où je l'ai essayé.

1 votes

J'obtiens NULL dans les résultats

6voto

Oui, il semble bien que Yahoo ! ait mis fin à l'API Yahoo Finance (privée, en grande partie non documentée) sur laquelle de nombreuses personnes comptaient depuis des années pour obtenir des données sur les devises. Nous avons reçu quelques notifications à ce sujet au cours des dernières 24 heures. (edit : Toutes les réponses semblent revenir "Not a valid parameter" . Je suppose qu'il y a une chance qu'ils le réactivent, mais ils ne supportent pas officiellement cette API nulle part, pour autant que je sache).

J'ai créé Taux de change ouverts il y a environ cinq ans, et notre API de taux de change fournit désormais à une communauté de dizaines de milliers de développeurs - et à leurs dizaines de millions d'utilisateurs - des informations précises et actualisées.

N'hésitez pas à consulter notre service Forever Free à l'adresse suivante https://openexchangerates.org .

Notre API se présente sous un format JSON simple et original, qui s'est imposé comme une méthode standard d'affichage des tarifs en raison de sa simplicité d'utilisation (contrairement à l'API de Yahoo, qui nécessitait d'analyser les obscurs objets imbriqués pour obtenir les informations de base dont vous aviez besoin...).

Si vous avez besoin d'aide pour effectuer le transfert depuis l'API Yahoo ! obsolète, nous serons heureux de vous aider par e-mail.

(Je suis le fondateur de Open Exchange Rates).

5 votes

Merci de confirmer mes observations. Malheureusement, je n'ai pas (actuellement) besoin de taux de change, mais lorsque ce sera le cas, j'examinerai votre service. Merci.

5 votes

Les "taux de change ouverts" ne semblent pas être libres. Ou donnez-nous un exemple de remplacement de finance.yahoo.com/webservice/v1/symboles/$SYMBOLS/

4 votes

Pas "libre pour toujours"

4voto

user2471214 Points 62

Je suis l'auteur de ValueViz sur github .

Prix quotidiens

Vous devez connaître les services de RESTFUL.

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 de date de début ou de fin, la date la plus ancienne ou la plus récente sera utilisée :

https://quantprice.herokuapp.com/api/v1.1/scoop/period?tickers=MSFT&begin=2012-02-19

tickers multiples

Vous pouvez simplement séparer les tickers par des virgules :

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 voulez vous inscrire pour un accès complet à l'API, envoyez-moi un DM sur Twitter. Vous recevrez une clé API à ajouter à l'URL.

Nous mettons en place un compte paypal pour les abonnements payants sans tarifs.

Liste des tickers disponibles

https://github.com/robomotic/valueviz/blob/master/scoop_tickers.csv

Je travaille également à fournir des données fondamentales et des données sur les sociétés provenant d'EDGAR. Merci.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X