Google Sheets : utiliser la fonction importXML pour le Web scraping

L’une des principales qualités de Google Sheets est sa capacité à pouvoir importer directement des contenus de sites Internet : la fonction importXML() de Google Sheets lit les contenus structurés du site Internet et les transfère dans le tableau souhaité du tableur de Google.

Remarque

Les deux tableurs Google Sheets et Excel présentent de nombreuses similitudes, mais ils se distinguent par plusieurs points essentiels comme le montre notre comparatif d’Excel et de Google Sheets.

Cette importation « XML to Google Sheets » est particulièrement pratique lorsque l’on souhaite générer des tableaux à partir de données disponibles en ligne. Dans cet article, vous découvrirez comment mettre à profit cette possibilité. Par ailleurs, nous vous donnons quelques suggestions pour utiliser cette fonction utile de Google Sheets de façon pertinente.

Google Sheets : brève explication de la fonction importXML()

La fonction importXML() lit les données structurées de projets Web et les insère dans les cellules d’une feuille de calcul de Google Sheets.

Pour utiliser cette fonction, la formule suivante doit être saisie dans le logiciel de Google :

=importXML(URL, XPath)

importXML() de Google Sheets dispose de deux paramètres seulement :

  • URL : l’adresse Web à partir de laquelle vous souhaitez obtenir des données. Le plus simple est de la copier directement depuis la barre d’adresse du navigateur.
  • XPath : le chemin qui indique à quel endroit de la page se trouvent les données que vous souhaitez importer.
Conseil

Vous trouverez des informations détaillées sur XPath dans notre tutoriel XPath.

Si vous saisissez directement les paramètres dans la fonction, vous devez les placer entre des guillemets. Le plus simple est d’écrire les deux paramètres (sans guillemets) dans deux cellules de tableaux et d’y faire référence dans la formule de la fonction. Vous pourrez ainsi faire l’économie des guillemets.

Google Workspace avec IONOS

Facilitez le travail en équipe ! Profitez d'une messagerie professionnelle via Gmail ainsi que de tous les outils Google au même endroit.

Visioconférences
Partage de fichiers
Travail mobile

Possibilités d’utilisation de la fonction « XML to Google Sheets » 

La fonction importXML() peut être utilisée de façon polyvalente. Les quatre possibilités d’application suivantes sont particulièrement intéressantes :

  • la création de listes de liens,
  • l’analyse de données de page Web structurées,
  • l’extraction de contenu de texte,
  • la reprise de tableaux HTML.

Dans les sections suivantes, nous vous expliquons comment utiliser concrètement la fonction importXML dans Google Sheets à travers ces quatre possibilités d’application.

Créer des listes de liens

Pour une raison ou une autre, on peut avoir besoin de présenter clairement des adresses de sites Internet intéressants dans une liste comportant l’URL, le nom du site Web et une description éloquente. Le site Internet Nodesign fournit une bonne base pour ce cas d’application : cette collection de liens présente des outils graphiques pour les développeurs ayant peu ou pas de formation en design. Les liens apparaissent dans des cadres contenant une image, un titre et une description rapide. À l’heure actuelle, cette collection comporte plus de 140 entrées.

À partir de ce site, nous souhaitons utiliser la fonction importXML() dans Google Sheets pour créer une liste de liens et procédons comme suit :

  1. Déterminer les contenus dans le code source de la page Web

Dans ce cas, nous avons besoin de l’URL, du texte d’ancrage (c’est-à-dire du libellé du lien) et de la description. Pour ce faire, nous consultons l’outil développeur de notre navigateur (touche F12 ou clic droit et « Inspecter ») puis nous sélectionnons le premier cadre. Sous la balise <h5>, ce cadre contient les données souhaitées : l’URL (1), le texte d’ancrage du lien (2) ainsi que la description (3).

  1. Définir le XPath

La deuxième étape consiste à définir le chemin (XPath) pour ces trois informations :

URL : l’URL est un attribut de la balise <a> qui se trouve sous la balise <h5>. Par conséquent, son XPath est :

//h5/a/@href

Texte d’ancrage : le texte d’ancrage est le contenu de la balise <a> définie ci-dessus : //h5/a. Nous reprenons le XPath précédent en abandonnant l’attribut @href.

Description : cet XPath est un peu plus délicat puisqu’il ne se trouve pas au même niveau hiérarchique que la balise <a>. Si nous prenons simplement le paragraphe <p> comme XPath, les textes ne correspondront plus à l’URL. Par conséquent, nous définissons le paragraphe qui contient la description comme l’élément qui suit la balise <h5> au même niveau hiérarchique :

//h5/following-sibling::p
  1. Utiliser la fonction dans le tableau Google

À présent, nous écrivons pour chacune de ces trois indications une instruction importXML() dans une colonne du tableau. Cette opération ne doit être réalisée que sur la première ligne ; le programme remplit automatiquement les autres lignes. La formule à proprement parler est alors écrasée par le contenu.

Pour garder une vue d’ensemble, nous ajoutons une ligne vide en haut et nous y saisissons à nouveau la fonction à titre informatif. Nous ajoutons cette fois-ci une apostrophe au début pour que la formule ne soit pas exécutée et soit traitée comme du texte simple.

Vous pouvez alors éditer ce tableau de la façon habituelle ; dans ce cas, les différentes cellules contiendront les données actualisées et non la formule.

Excel avec Microsoft 365 pour les entreprises et IONOS !

Utilisez Excel pour organiser vos données et gagner du temps - inclus dans tous les packs Microsoft 365 !

Office en ligne
OneDrive avec 1TB
Assistance 24/7

Analyse de données structurées d’une page Web

La liste de liens que nous venons de générer peut à présent être analysée de diverses manières si nécessaire. On pourrait par exemple également lister le méta-titre, la méta-description, la langue et le codage pour chaque URL trouvée, ces informations ayant une utilité à des fins de SEO.

Pour ce faire, nous saisissons les informations XPath dans la ligne supérieure et construisons la fonction dans la deuxième ligne (exemple : deuxième colonne) :

=importXML($A2,B$1)

La formule reprend l’URL de la première colonne et le XPath de la ligne supérieure. Pour pouvoir étendre la formule vers le bas et la droite, nous utilisons la première colonne et la première ligne comme références absolues (symbole $).

Note

Les entrées #NV indiquent que les informations recherchées sur la page Web n’ont pas été trouvées.

Pour déconnecter le tableau des sites Internet mis en lien, nous pouvons les sélectionner, les copier et les insérer dans une nouvelle feuille de calcul en appuyant sur [Maj] + [Ctrl] + [V].

Extraction de contenu de texte

Grâce aux progrès réalisés en reconnaissance de caractères par l’intelligence artificielle, également connue sous le nom de Natural Language Processing, les besoins en extraction de grandes quantités de texte à des fins d’analyse de sites Internet vont grandissants.

Les journaux quotidiens, les agrégateurs d’actualités et les sites de synthèse de la presse en sont un bon exemple : ils fournissent des informations précieuses pour analyser les tendances.

Pour les besoins de notre démonstration, nous avons choisi le site de synthèse de la presse newstral.com. Nous souhaitons simplement extraire une liste de l’ensemble des communiqués de presse (titres). Pour cela, nous procédons comme suit :

  1. Déterminer les contenus dans le code source de la page Web

Dans l’outil développeur (touche fonction F12 ou clic droit et « Inspecter »), nous sélectionnons un gros titre et observons comment il est structuré. Dans ce cas, la structure est très simple : le gros titre est le texte d’ancrage du lien (ligne inférieure) :

  1. Définir le XPath

Pour que seuls les titres soient repris et non l’ensemble des liens de la page, nous devons toutefois définir plus précisément le Xpath : il convient de trouver uniquement les balises <a> de la classe « headline », et uniquement celles qui se trouvent à l’intérieur du paragraphe de la classe « headlines-container ».

//div[@class="headlines-container"]/ul/li/span/a[@class="headline"]
  1. Utiliser la fonction dans le tableau Google

Nous saisissons l’URL et le Xpath dans la colonne à l’extrémité gauche d’une feuille de calcul Google vide. De là, nous pouvons facilement aller les chercher pour écrire la fonction :

(cellule B1) =importXML(A1,A2)
(cellule B2) =importXML(A1,A3)

Nous obtenons alors une liste des gros titres. Cerise sur le gâteau, nous pouvons actualiser cette liste à tout moment avec F5 de façon à toujours afficher les contenus les plus récents.

Conseil

Vous souhaitez d’autres astuces pour Google Sheets ? Pour cela, découvrez comment créer des listes déroulantes dans Google Sheets.

Reprendre des tableaux HTML

Pour transférer un tableau d’un site Internet dans Google Sheets, il vous suffit d’une simple formule. Prenons par exemple le tableau d’un article de Wikipedia sur les modèles Samsung Galaxy : pour importer ce tableau, nous avons simplement besoin de la balise <table> dans le XPath. Toutefois, nous devons encore déterminer combien de balises <table> précèdent notre tableau. Le tableau que nous recherchons est le troisième de ce site Internet. La formule correspondante est donc :

=importXML(„https://fr.wikipedia.org/wiki/Samsung_Galaxy“, „//table[3]/tbody/*“)

Et voilà ! Il a suffi d’une simple formule dans la cellule B1 pour transposer correctement l’intégralité du tableau avec toutes ses lignes et ses colonnes dans notre feuille de calcul.

Comme vous pouvez le constater, l’importation « XML to Google Sheets » peut être utilisée de façon incroyablement polyvalente et permet d’économiser quantité de temps et d’efforts.

Note

De nombreuses plateformes de réseaux sociaux et de grands revendeurs en ligne comme Amazon interdisent le Web scraping. Par conséquent, lisez tout d’abord les conditions d’utilisation avant de mettre à l’épreuve vos nouvelles compétences en Web scraping sur ces plateformes.