1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    novembre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 23
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : novembre 2017
    Messages : 3
    Points : 1
    Points
    1

    Par défaut Récupérer une info dans une page web vers une cellule Google Sheets

    Bonsoir à tous,
    je ne sais pas trop si je suis dans le bon forum, donc pardonnez moi si j'ai mal fait
    Je suis entrain de jouer avec la fonction IMPORTXML de Google Sheets afin de rapatrier des données d'une page web. En tâtonnant un peu, j'arrive à insérer les informations que je désire dans ma feuille de calcul, mais il m'arrive plusieurs fois de ne pas réussir à le faire sans comprendre pourquoi alors que la formule a l'air correcte.

    Je cherche à récupérer le cours de clôture de la veille sur cette page web : https://www.easybourse.com/action-co...R0000031122-25 mais au lieu de me retourner 12,545 € , j'obtiens 0€.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =value(IMPORTXML("https://www.easybourse.com/action-cours/air-france-klm/intraday/FR0000031122-25/","//span[@id='cours_dernier_veille']"))
    Avez vous une idée sur comment procéder ?
    Merci d'avance !
    Kim

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    septembre 2004
    Messages
    11 257
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2004
    Messages : 11 257
    Points : 19 062
    Points
    19 062

    Par défaut

    Hello,

    déjà cette page c'est du HTML, pas du XML. Ça fait tout de même une différence !

    Ensuite, qu'est-ce qui te fait penser que tu peux trouver une telle information à importer de cette page ? Par exemple, ça vient d'où, ce //span[@id='cours_dernier_veille'] ?
    De ce que je peux en voir, ce document ne fournit rien de précis à cet endroit, en tout cas pas sans un navigateur qui traite la page et exécute son programme. Ce que l'import XML de ton tableur ne va évidemment pas faire.

    Il est peut-être possible de récupérer les infos directement de la même manière que la page les récupère, mais depuis un tableur je n'y compterais pas trop quand même.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    novembre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 23
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : novembre 2017
    Messages : 3
    Points : 1
    Points
    1

    Par défaut

    Hello,
    quand je fais un clic droit sur la valeur que je voudrais importer (le "12,120 €" de "Clôture de la veille :") et que je sélectionne l'inspecteur, j'obtiens les différents id et class etc du DOM (Document Object Model) du site qui impactent directement sur le "12,120 €". Normalement le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <span id="cours_dernier_veille">12,120 €</span>
    devrait cibler ma valeur spécifiquement dans le DOM.

    Il est tout à fait possible de récupérer ces informations avec la fonction IMPORTXML car je le fais déjà Mais dans ce cas là, je n'arrive pas à cibler/attraper exactement ma valeur.

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    septembre 2004
    Messages
    11 257
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2004
    Messages : 11 257
    Points : 19 062
    Points
    19 062

    Par défaut

    Oui donc voilà, tu essaies d'aller chercher des infos dans le DOM.

    Mais le DOM ça n'existe que pour une page web chargée dans un navigateur qui en a besoin pour exécuter le JavaScript inclus dans cette page.
    Il n'y a pas de DOM dans un fichier juste téléchargé pour servir de document XML. Il n'y a qu'un code source, dont les données peuvent être accédées par XPath certes, mais qui n'ont subi aucun traitement JavaScript.

    Les informations que tu cherches à récupérer de cette page, sont régulièrement rafraîchies à l'aide de JavaScript qui interroge la base de données du site. Avant le premier passage de JavaScript, les données ne sont pas là. Et tu ne peux donc pas les récupérer comme ça. L'import XML ne fonctionnera pas pour ça.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    novembre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 23
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : novembre 2017
    Messages : 3
    Points : 1
    Points
    1

    Par défaut

    Ok Je pensais que Google pouvait s'affranchir des requêtes JS. Bon et bien... il va falloir que je trouve une autre solution

  6. #6
    Membre chevronné
    Inscrit en
    octobre 2011
    Messages
    1 087
    Détails du profil
    Informations forums :
    Inscription : octobre 2011
    Messages : 1 087
    Points : 1 885
    Points
    1 885

    Par défaut

    La valeur spécifique est montée et saisie dynamiquement à l'initiative côté client, et par conséquence, elle ne peut pas découvrir par une simple fonction importxml built-in. Il faut écrire une fonction dite "custom" pour faire ça. Il est un peu comme une petite application de "screen scrapping" au niveau plus avancé. L'approche moderne serait faite par plusieurs étapes : d'abord faire charger la page; puis injecter un petit bout ou deux de bloque de script --- par la mode ou par convenant, des jquery's, mais sûrement faisable avec quelques fonctions js plus classiques aussi; et puis après faisant attendre un peu du temps, faire exécuter les scripts injectés pour chercher les données qu'on veut retirer... et les données seraient disponibles comme ça. Pour faire tout ça dedans le google sheet, ça peut être très contraignant et pas commode, on fait plus aisément avec une application à part toute seule, plus librement et plus puissant, normalement à l'aide d'un analyseur dit 'headless'... dans des langages plus ou moins adaptant... Voilà quelques pistes vous pouvez explorer entre autres.

Discussions similaires

  1. Redirection page web vers une autre
    Par Marketing-vekia dans le forum Apache
    Réponses: 7
    Dernier message: 13/11/2016, 16h26
  2. Réponses: 2
    Dernier message: 18/02/2015, 14h10
  3. Réponses: 3
    Dernier message: 22/07/2012, 23h16
  4. Insérer une vidéo dans sa page Web
    Par soume86 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 11/05/2012, 21h49
  5. diriger une page web vers une page php
    Par moonia dans le forum Fonctions
    Réponses: 7
    Dernier message: 11/04/2006, 12h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo