Comment utiliser IMPORTXML dans Google Sheets pour collecter des données
Vous voulez collecter des données sur internet... rapidement ?
Peut-être voulez-vous copier un tableau à partir du site, ou peut-être voulez-vous récupérer rapidement des éléments SEO d'un concurrent.
IMPORTXML est là pour vous aider à automatiser vos opérations de collecte de données dans Google Sheets.
Qu'est-ce que la fonction IMPORTXML ?
La fonction IMPORTXML sous Google Sheets importe des données à partir de divers types de bases de données structurées (data types), notamment XML, HTML, CSV, TSV et les flux XML RSS et ATOM (atom xml feeds).
Il extrait des informations de n'importe quel champ XML, c'est-à-dire de n'importe quel champ entouré de balises HTML (donc de pages web), comme <balise> et </balise>.
Vous pouvez l'utiliser pour importer des informations accessibles publiquement sur le Web.
La syntaxe de la fonction IMPORTXML est la suivante :
Vous n'êtes donc pas autorisé à l'utiliser avec des sites internet auxquels vous devez vous connecter pour y accéder, pour plus d'informations, l'article ci-dessous devrait vous intéresser.
LIRE PLUS : Le Web Scraping est-il légal ?
Bases à connaître pour utiliser IMPORTXML
ImportXML function : Importe des données à partir de différents types de données structurées (xml html csv tsv rss).
La base d'une URL
- L'argument url est l'URL de la page Web à partir de laquelle vous souhaitez importer des données (data types),
- Indiquez le protocole (https:// ou http://).
- La valeur de l'URL doit être soit entre guillemets, soit être une référence à une cellule contenant le texte approprié.
La base d'une Requête XPath
- L'argument xpath_query est la requête XPath à exécuter sur les données de l'URL donnée.
- Chaque résultat de la requête XPath est placé dans sa propre ligne de la feuille de calcul.
- XPath est un langage d'interrogation utilisé pour récupérer des éléments d'information sur des sites.
- Il possède sa propre syntaxe que vous pouvez apprendre en détail à partir de ressources en ligne.
Il existe quelques règles de base pour créer votre propre argument xpath_query :
La double barre oblique :
- La double barre oblique "//" signifie la sélection de tous les éléments de la balise qui est écrite après elle.
- Par exemple : //h1 signifie sélectionner tous les éléments h1 Title, //p signifie tous les éléments p et ainsi de suite.
La classe
- [@class=''] signifie que vous souhaitez sélectionner uniquement les éléments qui répondent à ce critère donné.
- Par exemple, //h1[@class='title'] n'importe que les éléments h1 Title dont l'attribut class est "title".
Éléments
- Vous pouvez définir ces éléments sur plusieurs niveaux tels qu'ils apparaissent dans la source du site.
- Par exemple, //h1/span examinera les éléments h1, puis les éléments span qu'ils contiennent.
Les bases de XPath
Pour utiliser XPath, vous devez comprendre les bases du HTML.
- Les données d'un site internet sont affichées avec HTML et sont stockées au format XML.
- XPath est le langage utilisé pour interroger ces bases de données.
- Vous pouvez personnaliser ces arguments XPath en fonction de ce que vous recherchez sur le site.
Exemples de XPaths pour les spécialistes du marketing
Découvrez ces raccourcis d'extraction XPath utiles pour collecter plus rapidement des données sur le web :
- Tous les liens d'une page : "//@href"
- Extraire tous les liens internes d'une page : "//a[contient(@href, 'exemple.com')]/@href"
- Extraire tous les liens externes d'une page : "//a[not(contains(@href, 'example.com'))]/@href"
- Titre de la page : "//titre"
- H1(s) : "//h1"
- Meta description : "//meta[@name='description']/@content"
- Canonique : "//link[@rel='canonical']/@href".
- Robots : "//meta[@name='robots']/@content"
- Attributs Hreflang : "//lien[@rel='alternate']/@hreflang"
La fonction IMPORTXML vous permet d'importer des données de sites directement dans vos feuilles de calcul.
Il vous suffit de consulter le code source du site internet à partir duquel vous souhaitez importer des données, de trouver l'élément HTML qui peut être utilisé et de le récupérer en utilisant des requêtes XPath.
Quelles sont les étapes pour utiliser IMPORTXML dans Google Sheets ?
1. Commencez par ouvrir une nouvelle feuille Google
Tout d'abord, nous ouvrons un nouveau document Google Sheets vierge :
Pour cet exemple, vous pouvez utiliser la feuille d'exemple de Google Sheets :
Feuille d'exemple Google Sheets : Collecte de données avec ImportXML
2. Ajoutez le contenu que vous avez besoin d'extraire
Ajoutez l'URL de la page (ou des pages) dont nous voulons extraire les informations du web.
Dans notre cas, nous allons extraire les titres de pages de l'ensemble des articles, ainsi que leurs URL et métadescriptions.
Notre URL de départ sera donc la suivante : https://www.sales-hacking.com/blog
3. Trouver le XPath
Utiliser l'inspecteur du Navigateur
Afin de trouver à quoi ressemble le XPath et comment le trouver simplement, il suffit d'utiliser un outil simple présent sur la totalité des navigateurs modernes : L'inspecteur.
Ce XPath va nous permettre de récupérer spécifiquement chaque information souhaitée sur la page de manière : :
- Relative : je souhaite tous les titres de blog de la page Web
- Spécifique : je ne souhaite que les 10 ou 30 premiers titres d'articles de la page Web ou 1 seul en particulier
Dans notre exemple, commençons par les titres des 30 derniers articles.
- Allez dans votre Navigateur préféré .
- Une fois que vous avez survolé le titre de l'un des articles, faites un clic droit
- Et sélectionnez Inspecter (Inspect en anglais)
Une fois cliqué le Navigateur vous affichera le code HTML de la page Web comme ci-dessous :
Cela ne vous parle pas ? Pas de panique, nous allons voir à l'étape ci-dessous que le plus dur à faire pour vous sera une fois de plus de faire un "clic droit"
Copier/Coller le Xpath
L'inspecteur (disponible généralement dans la rubrique des Outils de Développement de votre navigateur) vous permet de sélectionner directement la page l'élément dont vous souhaitez plus d'informations :
- Sélectionner sur la page avec l'Inspecteur la partie qui vous intéresse, c'est à dire dans cet exemple : le titre de l'un des articles
- Assurez-vous que le titre de l'article est toujours sélectionné et mis en évidence, puis cliquez à nouveau avec le bouton droit de la souris et choisissez Copier > Copier XPath.
Le tour est joué, vous venez de sélectionner le XPath que vous allez utiliser tout de suite dans Google Sheets.
4. Extraire les données dans Google Sheets
Pour essayer vous même dans Google Sheets exemple, vous pouvez utiliser la feuille d'exemple ci-dessous (Créer une copie pour l'utiliser ) :
Feuille d'exemple Google Sheets : Collecte de données avec ImportXML
Note : La collecte des données des articles de blog présents dans cet article a été volontairement limité à 10 éléments pour éviter toute restriction de la part des services Google.
Récupération des articles titres de Blog
De retour dans votre document Google Sheets, introduisez la fonction IMPORTXML comme suit :
Il est possible de récupérer également les données par le biais de XPath spécifiques dans Google Sheets.
Par exemple dans l'étape 3, nous avons sélectionné le XPath d'un article spécifique qui est celui-ci :
=IMPORTXML(B1,"/html/body/div[3]/div[1]/div[2]/div[3]/div/div["&B3&"]/div/div/a/h3")
Tout d'abord, dans notre formule, nous avons remplacé l'URL de la page par la référence à la cellule où est stockée l'URL.
Deuxièmement, lorsque vous copiez le XPath, il sera toujours placé entre guillemets.
Récupération des URL des articles de Blog
Voici à quoi cela ressemble sur le document Google Sheets
Comme vous pouvez le voir, la liste renvoie tous les articles et les URLS qui figurent sur la page que nous venons d'extraire.
Vous pouvez également appliquer ce principe à l'extraction de tout autre élément d'information nécessaire à la mise en place de vos projets comme la récupération des meta descriptions de chaque page avec Google Sheets (exemple à retrouver dans le fichier ci-dessous) :
Feuille d'exemple Google Sheets : Collecte de données avec ImportXML
Comment puis-je automatiser le processus de collecte de données avec IMPORTXML dans Google Sheets ?
Vous pouvez automatiser le processus de collecte de données en utilisant des scripts Google Apps ou des outils de programmation tiers tels que Python.
Les scripts peuvent être utilisés pour définir un calendrier de collecte de données, ajouter des données extraites à une feuille de calcul et envoyer des notifications de mise à jour.
Autres Exemples de formules IMPORTXML
Supposons que vous vouliez importer les titres des paragraphes de cet article de Wikipedia avec IMPORTXML de Google Sheets.
Après examination du code source, vous pouvez voir que les titres sont enfermés dans des balises <h2>.
C'est donc ce que vous devez mettre dans votre formule IMPORTXML. En syntaxe XPath, il faut l'écrire comme "//h2".
Essayez la fonction suivante où la cellule A2 contient l'URL de l'article :
Tout d'abord, vous verrez un signe "Loading...", alors que l'importation des données est en cours. L'importation à partir du site prend un certain temps (mais c'est toujours plus rapide que de le faire manuellement).
Après quelques secondes, la fonction renvoie ce qu'elle a trouvé sur le site avec les balises <h2>.
Cette solution n'est pas parfaite car il y a des textes [edit] supplémentaires à côté des titres que le site contient, mais elle renvoie bien les titres des paragraphes.
Cette fois, du texte visible a été importé du site.
Mais avec la fonction IMPORTXML, vous pouvez importer toutes les données que contient la source HTML. Par exemple, il est très utile d'importer des méta-informations, des sources de liens ou toute autre information HTML cachée qui n'est pas visible lors de la navigation sur le site.
Récupérons les liens des vidéos YouTube depuis le site des règles de confidentialité de Google.
Dans ce cas, le premier argument de la fonction IMPORTXML est l'URL de ce site.
Après avoir regardé la source du site, vous pouvez vous rendre compte que les vidéos YouTube sont enfermées dans des balises <iframe> et </iframe>.
Vous devez donc ajouter //iframe à l'argument XPath de la fonction.
Ensuite, vous devez aller plus loin dans cette balise <iframe> pour trouver les données requises que vous souhaitez afficher.
La source du lien des vidéos peut être trouvée dans les attributs src.
Ajoutez une barre oblique "/" après la première partie de la requête XPath suivie de l'attribut src.
Le caractère "@" indique qu'il s'agit d'un attribut. L'ensemble de la requête xpath_query sera : //iframe/@src.
Et toute la fonction pour importer les liens YouTube est :
Parfois, ce qui différencie le code HTML du contenu que vous voulez importer n'est pas si évident, mais le langage XPath vous permet de créer des requêtes plus complexes qui permettent d'extraire uniquement les données souhaitées.
XPath dispose de certaines fonctions que vous pouvez inclure dans vos requêtes, telles que "contains" ou "starts with".
Voyons comment importer toutes les références (citations) du bas de l'article Google Sheets de Wikipedia.
Après avoir regardé la source du site, vous pouvez voir que les références sont enfermées dans des balises <li>.
Mais ce n'est pas suffisant car il y a beaucoup de balises <li> sur le site.
Vous devez trouver quelque chose de plus qui différencie ces éléments de liste des autres parties du site.
Ici, c'est l'attribut id des références qui contiennent toutes le terme "cite_note".
La fonction contain de XPath peut être utilisée pour importer uniquement les éléments <li> dont l'id contient le terme 'cite_note'.
C'est ce que fait la fonction IMPORTXML de Google Sheets suivante :
Et il renvoie toutes les références qui ont été trouvées sur le site avec cet identifiant.
Quel type de données puis-je collecter avec IMPORTXML dans Google Sheets ?
Vous pouvez collecter une variété de données à partir du site Web en utilisant IMPORTXML, telles que des prix, des descriptions de produits, des informations de contact, des dates et des horaires d'ouverture, des taux de change, des infos sur la mise en forme, etc.
Conclusion
Comme vous pouvez le constater, IMPORTXML de Google Sheets peut être une fonction très puissante dans votre arsenal.
Vous disposez ainsi d'une méthode entièrement automatisée et sans erreur pour extraire des données de (potentiellement) n'importe quelle page Web, qu'il s'agisse du contenu et des descriptions de produits ou de données e-commerce telles que le prix du produit ou les frais d'expédition.
À une époque où les informations et les données peuvent constituer l'avantage nécessaire pour obtenir des résultats supérieurs à la moyenne, la capacité de collecter des données de pages Web et du contenu structuré de manière simple et rapide peut être inestimable.
De plus, comme nous l'avons vu plus haut, IMPORTXML de Google Sheets peut contribuer à réduire les temps d'exécution et les risques d'erreur.
De plus, cette fonction de Google Sheets n'est pas seulement un outil formidable qui peut être utilisé exclusivement pour les tâches liées au PPC.
Mais elle peut être vraiment utile dans de nombreux projets différents qui nécessitent de scraper le web, y compris les tâches liées au SEO et au contenu.
FAQs
Qu'est-ce que IMPORTXML dans Google Sheets ?
IMPORTXML est une fonction intégrée dans Google Sheets qui vous permet de récupérer des données XML à partir du site Web et de les afficher dans votre feuille de calcul.
Comment fonctionne IMPORTXML dans Google Sheets ?
IMPORTXML fonctionne en utilisant des expressions XPath pour extraire des données à partir d'une page Web.
Les expressions XPath sont des instructions qui indiquent à IMPORTXML où trouver les données sur la page.
IMPORTXML est-il facile à utiliser pour les débutants ?
Bien que l'utilisation d'IMPORTXML puisse sembler complexe au premier abord, avec un peu de pratique, la fonction peut être utilisée facilement même par les débutants.
Il existe également de nombreuses ressources en ligne, telles que des tutoriels vidéo et des forums de support communautaire, qui peuvent vous aider à apprendre à utiliser IMPORTXML efficacement.
Y a-t-il des limites à l'utilisation de IMPORTXML dans Google Sheets ?
Oui, il y a des limites à l'utilisation de IMPORTXML dans Google Sheets.
Par exemple, certains sites peuvent bloquer l'accès à leurs données, ou les données peuvent ne pas être structurées de manière à ce qu'elles puissent être facilement collectées avec IMPORTXML.
De plus, la fonction peut être ralentie si elle est utilisée pour extraire des données à partir de nombreuses pages Web en même temps.
IMPORTXML fonctionne-t-il avec tous les sites ou y a-t-il des restrictions ?
IMPORTXML fonctionne avec la plupart des sites, mais il peut y avoir des restrictions sur certains sites.
Les sites qui utilisent des technologies de protection avancées telles que les captchas ou les blocages d'IP peuvent empêcher IMPORTXML de récupérer les données. Cependant, dans la plupart des cas, IMPORTXML fonctionne bien pour extraire des données.