IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

APIs Google Discussion :

Chercher Des Information Sur Internet Pour Les Mettres Dans Un Tableau


Sujet :

APIs Google

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Aucun
    Inscrit en
    Août 2018
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Aucun

    Informations forums :
    Inscription : Août 2018
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Chercher Des Information Sur Internet Pour Les Mettres Dans Un Tableau
    Bonjour,
    J'aimerais faire un tableau avec tout les matchs de Ligue 1 de la semaine sur Google Sheets.
    Mais J'aimerais que Google Sheets aille chercher le calendrier des matchs sur un site donné (ex : https://www.lequipe.fr/Football/ligue-1-resultats.html) pour ensuite les rangés dans un tableau.
    Cela est-il possible?
    Et si oui comment?
    Merci d'avance.

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Portugal

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    Je suis nouveau sur ce forum mais je pense pouvoir vous aider, car moi même j'ai u cette problématique par le passé.

    Pour répondre a votre question, oui c'est possible avec la Fonction =IMPORTXML de Google Sheets.

    J'ai essayer de mon coté de crée un document Sheets, mais je ne maitrise pas assez la Fonction pour vous aidé avec plus de précision.

    En espérant vous avoir aidé ^^

  3. #3
    Membre confirmé

    Homme Profil pro
    Chomeur
    Inscrit en
    Juin 2006
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Chomeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 347
    Points : 452
    Points
    452
    Par défaut
    Bonjour,

    En effet, IMPORTXML est une fonction native utilisable depuis la spreadsheet qui peut permettre, avec le bon filtre xpath, d'isoler la donnée souhaitée. Mais au delà de la difficulté de trouver la bonne syntaxe xpath, chaque utilisation de la fonction va entrainer un nouvel appel à l'URL à chaque ouverture du classeur => pb de performances + limitations Google des appels. Ça n'est donc peut-être pas la solution à privilégier pour ce besoin...

    Une autre solution pourrait alors être d'écrire un bout de script GAS capable de faire le job en un seul appel. Par exemple, la fonction suivante peut être appelée depuis une cellule (=getScoreInTab() ) du classeur et inscrira automatiquement les résultats du jour :
    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    function getScoreInTab() {
      var urlXml = 'https://www.lequipe.fr/Football/ligue-1-resultats.html';
      var xml = UrlFetchApp.fetch(urlXml).getContentText();
    /*
    <div class="ligne ...
    		<div class="equipeDom">
    			<img src="//medias.lequipe.fr/logo-football/47/20?20180928183658" alt="Nîmes">
    			<a  href="/Football/FootballFicheClub47.html" class="gagne">Nîmes   &nbsp;<span class="color">(11)</span></a>
    		</div>
    		<div class="score"><a href="/Football/match-direct/ligue-1/2018-2019/nimes-dijon-live/428390" >2-0</a></div>
    		<div class="equipeExt">
    			<img src="//medias.lequipe.fr/logo-football/202/20?20180928183658" alt="Dijon">
    			<a href="/Football/FootballFicheClub202.html" class="">Dijon&nbsp;<span class="color">(17)</span></a>
    		</div>
    </div>
    */
      var resultInTab = [];
      var ligneTab = [];
      var equipeDom, equipeDomTemp, equipeExt, equipeExtTemp, score, scoreTemp;
      var allResults = xml.split('class="ligne');
      for(var idx = 1; idx < allResults.length; idx++) {
        if(allResults[idx].indexOf('equipeDom') != -1) {
    		equipeDom = allResults[idx].split('equipeDom')[1].split('>')[3].split('<')[0].split('&nbsp')[0].trim();
    		equipeExt = allResults[idx].split('equipeExt')[1].split('>')[3].split('<')[0].split('&nbsp')[0].trim();
    		score = allResults[idx].split('score')[1].split('>')[2].split('<')[0].split('&nbsp')[0].trim();
    		ligneTab.push(equipeDom + ' ' + score + ' ' + equipeExt);
        }
      }
      return ligneTab;
    }

    Le mécanisme reste fragile compte tenu de toutes les chaines manipulées (si le site modifie sa mise en page, tout sera KO). Mais personnellement, je trouve qu'en terme d'efficacité de ligne de code, ça reste plutôt satisfaisant :-)
    Signature à venir...
    Ancienne : Divers NTIC (PHP, Dojo, à venir...) : http://tif44.fr/blog/

Discussions similaires

  1. [XL-2013] Récupérer des données sur internet et les integrer dans un ficher Excel
    Par dodinouche dans le forum Macros et VBA Excel
    Réponses: 22
    Dernier message: 30/07/2015, 14h35
  2. Réponses: 3
    Dernier message: 01/07/2012, 15h57
  3. Réponses: 4
    Dernier message: 23/12/2008, 10h32
  4. Réponses: 2
    Dernier message: 08/10/2008, 17h39
  5. Réponses: 9
    Dernier message: 05/11/2007, 11h05

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