Comment tirer tout le potentiel des fonctions d'importation de Google Sheets ?
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()"))
- 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.
Exemple : "https://www.seomemento.com/?param="&today()
La fonction s'exécutera chaque jour sans que tu sois obligé d'ouvrir la page.
Tu peux aussi 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 !
- Partager sur Twitter
- Partager sur Facebook
- Partager sur LinkedIn
- Partager sur Pinterest
- Partager par E-mail
- Copier le lien
Un Template Google Sheets Offert ! 🎁
Rejoins ma newsletter et reçois une astuce SEO chaque mercredi ! En cadeau, je t'offre un template Google Sheets avec 50 fonctions de scraping prêtes à l'emploi.