Importer des données Yahoo Finance dans sheets Google

Bonjour à tous,

Je voulais importer les données Yahoo Finance dans Google Sheets mais je reçois toujours la valeur #N/A.

Je pense que le site Yahoo Finance est protégé ?

j’ai mis deux formules IMPORTHTML et IMPORTXML dans la ligne 11 : (TEXT - Google Spreadsheets)

les résultats sont toujours #N/A avec la bulle d’information « Impossible de trouver la ressource associée à l’URL »;

Que pourriez-vous m’aider ?

Merci d’avance.

On a une solution pour ça!

Jette un oeil et dis moi ce que tu en penses

1 « J'aime »

Bonjour,
Merci mais j’obtiens le message #ERREUR.
Ici mon fichier partagé : TEXT - Google Spreadsheets

Cordialement

Retire juste le .fr dans ton URL et ça fonctionne!

1 « J'aime »

merci beaucoup.
Je constate que les valeurs dans l’onglet « Statistiques » ont été bien récupéré par les sélecteurs de données (Yahoo Finance data selectors - NoDataNoBusiness). C’est génial. :+1: :+1: :+1:

Par contre les valeurs dans l’onglet « Elements financiers » n’ont pas été récupéré par les sélecteurs de données. :smiling_face_with_tear: :smiling_face_with_tear: :smiling_face_with_tear: car j’aurai besoin la valeur de l’année dernière et celle de l’année précédente.

Peut-être connaissez-vous d’autres sélecteurs de données pour l’onglet « Elements financiers » ? :pray: :pray: :pray:

Merci d’avance pour votre précieuse aide.

1 « J'aime »

Tous les sélecteurs configurés sont sur cette page: Yahoo Finance data selectors - NoDataNoBusiness

Pour d’autres sélecteurs, il faudrait contacter notre service support: Contact us - NoDataNoBusiness

2 « J'aime »

Bonjour.
Merci. Je viens d’envoyer le message au support NoDataNoBusiness et j’attends son retour.
Cordialement.

1 « J'aime »

Hello @ericdou62,

Je ne sais pas si c’était ces 2 valeurs-là que tu voulais de Apple :

Si oui, pas besoin d’utiliser NoDatanoBusiness, voici le lien du Gsheets qui contient les formules :

PS : Si jamais ça peut t’aider à l’avenir, je me suis appuyé sur GPT-4 en donnant le Full Xpath et ça a pris 2 min :wink:

1 « J'aime »

Bonjour Kevin, :wink: :wink: :wink:

Merci. Oui j’avais déjà réussi avec IMPORTXML pour certaines données.

Par exemple, je veux prendre la valeur dans (cf. capture ci-dessous)

J’ai utilisé la fonction Inspecter comme l’image suivante :

je reçois le résultat : #N/A

C’est là que je suis bloqué.

Merci d’avance.

Oui ça ne semble pas possible à l’aide d’une formule @ericdou62, il faut le faire avec un Apps Script,

J’ai demandé à ChatGPT et ça a l’air fonctionnel, je l’ai ajouté dans le même Sheets que j’ai partagé précédemment :wink:

image

Pour l’appeler dans une cellule =fetchYahooDataForSheet()

Code du Apps Script
function fetchYahooDataForSheet() {
  var url = "https://finance.yahoo.com/quote/AAPL/financials?p=AAPL";
  var response = UrlFetchApp.fetch(url);
  var content = response.getContentText();
  
  // Utilisez l'expression régulière pour extraire la valeur
  var regex = /<div class="Ta\(c\) Py\(6px\) Bxz\(bb\) BdB Bdc\(\$seperatorColor\) Miw\(120px\) Miw\(100px\)--pnclg D\(tbc\)" data-test="fin-col"><span>([\d,]+)<\/span><\/div>/;
  var match = content.match(regex);
  
  if (match) {
    return match[1]; // Le groupe de capture pour la valeur
  } else {
    return "Element not found";
  }
}
Pour aller sur Apps Script si jamais

2 « J'aime »

Bonjour Kevin,

Top et encore merci !!! :wink: :wink: :wink:
ça m’a beaucoup aidé mais il y a un autre problème.

Ce qui tu m’as donné le code Apps Script qui récupére bien la valeur du 29/9/2022

J’ai recopié et adapté au code pour la valeur du 29/09/2021. Malheureusement, il ne prend que la valeur de TTM.

En regardant en profondeur, je constate que le code est le même pour TTM et 29/09/2021 (entouré en bleu). L’autre code est le même pour 29/09/2022 et 29/09/2020 (entouré en rouge).

Peut-être y a-t-il un moyen de relever la ligne et la colonne (par exemple : ligne 1 et colonne 4) ?

Merci encore de votre précieuse aide.

voici le lien que j’ai développé : Sheet dev yahoo finance

Voilà @ericdou62 :wink:

image

Gsheets : Lien ici

Il y a maintenant =fetchYahooData(2200) =fetchYahooData(2022) =fetchYahooData(2021) =fetchYahooData(2020)

Le code du Apps Script
function fetchYahooData(year) {
  var url = "https://finance.yahoo.com/quote/AAPL/financials?p=AAPL";
  var response = UrlFetchApp.fetch(url);
  var content = response.getContentText();
  
  // Cette regex tente de localiser la section "Total Revenue" et de capturer les valeurs qui suivent
  var regex = /Total Revenue.*?>([\d,]+)<\/span>.*?>([\d,]+)<\/span>.*?>([\d,]+)<\/span>.*?>([\d,]+)<\/span>/s;
  
  var match = regex.exec(content);
  
  if (match) {
    // Les valeurs devraient être dans l'ordre: TTM, 2022, 2021, 2020
    switch(year) {
      case 2020:
        return match[4];
      case 2021:
        return match[3];
      case 2022:
        return match[2];
      case 2200:
        return match[1];
      default:
        return "Year not found";
    }
  } else {
    return "Data not found";
  }
}

Je ne pourrais pas passer plus de temps dessus, bonne chance pour la suite si tu as besoin d’autres valeurs :wink:

2 « J'aime »

Grand merci !!! :+1: :+1: :+1:
j’ai ajouté deux valeurs dans fetchYahooData(year; tricker).
Tout fonctionne nickel. :wink: :wink:
Je vous remercie beaucoup.

2 « J'aime »

Bonjour Kevin,
J’ai utilisé ton script qui m’a beaucoup aidé.
J’ai encore un autre souci. :smiling_face_with_tear: :smiling_face_with_tear:
J’ai besoin de prendre la valeur dans l’onglet Cash Flow (le plus simple est de montrer la capture ci-dessous) :


j’ai pris le même script que vous avez développé en remplaçant par « Net Income from Continuing » mais j’obtiens le résultat : « Data not found »

je vous joins mon fichier sheet : Fichier sheet
Si vous n’avez pas le temps, ce n’est pas grave.
Personnellement, je n’arrive pas à utiliser avec Chat GPT
merci d’avance :pray: :pray: :pray:

1 « J'aime »