Comment collecter des données avec IMPORTXML dans Google Sheets ?

hero image blog

Nous avons tous été dans une situation où nous avons dû extraire des données d'un site à un moment donné.

Lorsque vous travaillez sur un nouveau projet ou une nouvelle campagne, il se peut que vous ne disposiez pas des données ou des informations nécessaires à la création des annonces, tout simplement.

Ceux qui n'ont pas les outils nécessaires pour faire du web scraping - ou les connaissances en matière de codage pour utiliser Python - ont peut-être dû se résoudre à copier et coller manuellement des centaines ou des milliers de données.

Dans un projet récent, on m'a demandé de :

  • Allez sur le site du client.
  • Téléchargez plus de 150 nouveaux produits répartis sur 15 pages différentes.
  • Copiez et collez le nom du produit et l'URL de la landing page pour chaque produit dans une feuille de calcul.

Vous pouvez imaginer combien la tâche aurait été longue si le travail avait été fait manuellement.

Non seulement cela prendrait du temps, mais les risques de faire une erreur seraient également élevées : cela nécessiterait alors encore plus de temps pour relier les données et s'assurer qu'elles sont exempts d'erreurs.

logo Google Sheets

Laissez-moi vous montrer comment collecter des données avec Google Sheets et sa fonction IMPORT XML sans n'avoir aucune compétence en développement.

LIRE PLUS : Comment collecter des données avec le langage Python ?

Quand utiliser IMPORTXML pour collecter des données ?

importxml function
  • Extraction de base de données de sites internet ou de flux XML (atom xml feeds)
  • Lorsque vous avez besoin de données sur les pages, mais que vous n'avez pas envie d'utiliser d'outils
  • Lorsque vous avez besoin de données sur les pages, mais que vous ne savez pas coder

L'utilisation de IMPORTXML pour collecter des données est légale et éthique ?

Dans la plupart des cas, l'utilisation de IMPORTXML pour collecter des données est légale tant que les données collectées ne sont pas utilisées à des fins illégales.

Cependant, il est important de respecter les conditions d'utilisation des sites dont les données sont collectées. Dans certains cas, les sites Web peuvent interdire l'extraction de données à des fins commerciales ou interdire l'utilisation de méthodes d'extraction automatisées telles que IMPORTXML.

Avant d'utiliser IMPORTXML pour collecter des données, il est important de vérifier les conditions d'utilisation du site.

LIRE PLUS : Liste d'outils pour collecter des données sur le Web

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 :

Documentation Google Sheets : Fonction IMPORTXML
Documentation Google Sheets : Fonction IMPORTXML

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).

documentation importxml

La base d'une URL

ImportXML URL
ImportXML 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

logo 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 :

Google Sheets
Google Sheets

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

Web Scraping avec Google Sheet
Collecte de données avec Google Sheet

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.

  1. Allez dans votre Navigateur préféré .
  2. Une fois que vous avez survolé le titre de l'un des articles, faites un clic droit
  3. Et sélectionnez Inspecter (Inspect en anglais)
Utilisez l'inspecteur des moteurs de recherche pour trouver le XPath
Utilisez l'inspecteur des moteurs de recherche pour trouver le XPath

Une fois cliqué le Navigateur vous affichera le code HTML de la page Web comme ci-dessous :

code HTML
code HTML de la Page

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 :

  1. 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
  2. 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.
Inspecteur du navigateur
Récupération du XPath par l'inspecteur du Navigateur

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 :

Exemple fonction ImportXML

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")
Récupération du Titre par des XPath Spécifiques
Récupération du Titre par des XPath Spécifiques

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

Exemple fonction IMPORT XML pour collecter des URL
Extraire des URL grâce à IMPORTXML sous 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
feuille d'exemple complète
Mise en forme des données
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.
logo python

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 :

Web Scraping - ImportXML 3
Exemple de la fonction IMPORTXML - =IMPORTXML (A2,"//h2")

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 :

Web Scraping - ImportXML 2
Exemple d'utilisation de la fonction IMPORTXML - IMPORTXML(A2,"//iframe/@src")

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 :

Web Scraping - ImportXML 1
Exemple d'utilisation de la fonction Import XML - IMPORTXML(A2,"//li[contient(@id, 'cite_note')]")

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.

profil auteur de stephen MESNILDREY
Stephen MESNILDREY
CEO & Fondateur

🔍 Ma passion ? Décrypter, analyser et partager des stratégies puissantes, des logiciels avant-gardistes et des astuces inédites qui boostent votre entreprise et révolutionnent votre secteur.

Vous voulez rester à la pointe ? Vous êtes au bon endroit ! 💡

📩 Abonnez-vous à ma newsletter et recevez chaque semaine :

  • Des conseils pratiques pour réinventer votre business, optimiser votre productivité et stimuler votre créativité
  • Un accès privilégié aux nouvelles stratégies
  • 100% de contenu EXCLUSIF à partager avec vous
  • 0% de choses à vous vendre

L'aventure ne fait que commencer, et elle s'annonce épique ! 🚀

Pour des insights quotidiens et des analyses en temps réel, suivez-moi sur Twitter 📲

Twitter 𝕏 : Connectons- nous !
⚠️ IMPORTANT: Certains liens peuvent-être affiliés et peuvent générer une commission sans coût supplémentaire pour vous si vous optez pour un plan payant. Ces marques - testées et approuvées 👍 - contribuent à maintenir ce contenu gratuit et faire vivre ce site web 🌐