Aller au contenu

Comment tirer tout le potentiel des fonctions d'importation de Google Sheets ?

Antoine Brisset
Antoine Brisset
Temps de lecture : 3 min
Comment tirer tout le potentiel des fonctions d'importation de Google Sheets ?
Photo by CHUTTERSNAP / Unsplash

Table des matières

Il y a quelques semaines mois, j'ai fait un thread Twitter sur les fonctions d'importation de Google Sheets.

Si tu es passé à côté, je te propose une petite séance de rattrapage, avec en bonus des informations complémentaires.

Présentation

Google propose 5 fonctions pour importer des données :

  • IMPORTXML : pour extraire les données de pages HTML ou de fichiers XML
  • IMPORTFEED : pour extraire les données de flux RSS ou Atom
  • IMPORTHTML : pour extraire des tableaux ou des listes HTML
  • IMPORTDATA : pour importer des données au format CSV ou TSV
  • IMPORTRANGE : pour importer des données depuis une autre feuille de calcul

Limites

Les fonctions d'importation sont puissantes mais elles présentent des limites :

  • Google n'exécute pas le JavaScript côté client, donc si tu importes des données depuis un site développé via framework JS, tu auras probablement le message suivant "Imported content is empty"
  • si ta page ou ton fichier est trop lourd, tu auras l'erreur suivante "Resource at url contents exceeded maximum size" : la limite n'est pas claire, mais au-delà de 50000 lignes/2MB, j'ai régulièrement le problème
  • Google a supprimé en 2015 la limite de 50 fonctions d'importation par feuille de calcul, mais en réalité, on se retrouve très vite avec des erreurs de type "Loading..." dès qu'on dépasse ce seuil

Solutions

Pour contourner les limites :

  • essaie de "chaîner" au maximum tes requêtes XPath avec "|". Par exemple, pour récupérer le title, la meta desc et le h1, tu peux utiliser une seule fonction : TRANSPOSE(IMPORTXML("https://www.seomemento.com/";"//title|//meta[@name='description']/@content|//h1//text()"))
XPath chaining
  • dispatche tes fonctions d'importation dans plusieurs feuilles de calcul différentes et utilise IMPORTRANGE pour tout regrouper dans une feuille "master"

Fraîcheur des données

Les fonctions IMPORTXML, IMPORTHTML et IMPORTDATA se mettent à jour :

  • automatiquement :
    • toutes les heures, SEULEMENT si le document est ouvert dans ton navigateur
  • immédiatement :
    • si tu supprimes la formule pour l'ajouter à nouveau dans la même cellule
    • si tu modifies le contenu d'une cellule à laquelle la fonction fait référence

❗ Si tu ouvres le document ou que tu fais un F5, les données ne seront pas actualisées.

Astuces

Mise à jour automatique

Pour que la mise à jour des données se fasse automatiquement tous les jours, tu peux utiliser la fonction TODAY, en ajoutant le résultat de cette fonction à un paramètre d'URL (fictif) de ta fonction d'import.

La fonction s'exécutera chaque jour sans que tu sois obligé d'ouvrir la page.

Ajout de la date dans l'URL avec la fonction TODAY

Tu peux par exemple utiliser cette astuce avec un flux RSS (via IMPORTFEED), pour récupérer une liste actualisée des dernières publications d'un site.

Tu peux même connecter Zapier pour recevoir cette donnée par mail 😀

À noter que cette technique fonctionne avec TODAY, mais elle ne fonctionne ni avec NOW, ni avec RAND, ni avec RANDBETWEEN.

User-Agent

Olivier Perbet a donné en réponse au thread une information concernant le User Agent utilisé par Google Sheets (merci Olivier !).

Le voici : Mozilla/5.0 (compatible; GoogleDocs; apps-spreadsheets; +http://docs.google.com)

Pratique pour faire des tests, ajouter des restrictions ou adapter le contenu de son site en fonction de cet UA.

JSON

Même si ce n'est pas mentionné dans la documentation, tu peux tout-à-fait utiliser IMPORTDATA pour scraper un fichier JSON, en jouant ensuite avec les fonctions INDEX, SPLIT, REGEXREPLACE, etc.

J'ai donné plusieurs exemples récemment, notamment pour trouver l'IP d'un site web.

Et voilà ! Amuse-toi bien avec les fonctions d'importation !

Google Sheets

Antoine Brisset Twitter

Consultant SEO depuis 2010. Je traque les clics inutiles et automatise les tâches répétitives pour gagner du temps dans mon quotidien de travailleur du web.

Commentaires


Articles Similaires

Membres Public

Comment supprimer le balisage HTML d'un texte avec Google Sheets ?

Imagine : tu viens de scraper des blocs entiers de code HTML et tu dois en extraire le contenu texte. Comment tu t'y prendrais pour supprimer automatiquement les balises et conserver uniquement le texte ? J'ai souvent été confronté à ce problème, alors je te montre comment faire dans Google Sheets. Étape

Comment supprimer le balisage HTML d'un texte avec Google Sheets ?
Membres Public

Comment partager facilement et rapidement un rapport Search Console ?

Toi aussi, parfois on te demande d'envoyer rapidement quelques chiffres Search Console pour compléter une présentation ou finaliser un reporting ? Plutôt que d'envoyer une capture d'écran un peu moche ou de te lancer dans la création d'un Data Studio Looker Studio, je vais te montrer comment créer un joli petit

Comment partager facilement et rapidement un rapport Search Console ?
Membres Public

Comment vérifier si une IP correspond à Googlebot dans Google Sheets ?

Si tu as déjà fait de l'analyse de logs, tu sais qu'un simple filtre sur le user agent Googlebot ne suffit pas à valider que le crawl provient bien d'un "véritable" Googlebot. Il faut procéder à une deuxième vérification, qui peut se faire de deux manières : * via un reverse DNS

Comment vérifier si une IP correspond à Googlebot dans Google Sheets ?