Aller au contenu

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

Antoine Brisset
Antoine Brisset
Temps de lecture : 2 min
Comment supprimer le balisage HTML d'un texte avec Google Sheets ?
Photo by Markus Spiske / Unsplash

Table des matières

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 1 : trouver la bonne regex

Pour nettoyer ce code HTML, il faut d'abord trouver la regex qui va cibler tous les tags HTML présents.

L'expression régulière suivante devrait faire l'affaire : <[^>]+>

Explications :

  • la chaîne doit commencer par un chevron ouvrant <
  • suivi de n'importe quel caractère sauf un chevron fermant [^>], répété une ou plusieurs fois (+)
  • suivi d'un chevron fermant >

Problème : si le HTML contient des balises script, noscript, ou style, elles vont certes être supprimées, mais pas leur contenu.

Du coup, je vais affiner un peu mon expression régulière.

La voici : <((no)?script|style)[^<]+<\/((no)?script|style)>|<[^>]+>

Explications :

  • la chaîne doit commencer par un chevron ouvrant <
  • suivi d'une balise script, noscript, ou style : ((no)?script|style)
  • suivi de n'importe quel caractère, sauf un chevron ouvrant, répété une ou plusieurs fois [^<]+
  • suivi d'un chevron ouvrant et d'un slash <\/
  • suivi de noscript, script ou style ((no)?script|style)
  • ...ou alors la chaîne doit matcher la première regex citée <[^>]+>
Vérification dans Rubular ✓

Étape 2 : rechercher/remplacer dans Google Sheets

Maintenant que j'ai trouvé la regex, direction Google Sheets.

Je vais utiliser la fonction REGEXREPLACE, en lui passant en arguments :

  • le texte à remplacer
  • l'expression régulière
  • la chaîne de remplacement (chaîne vide)

Ce qui donne :

=REGEXREPLACE(A2;"<((no)?script|style)[^<]+<\/((no)?script|style)>|<[^>]+>";"")
Suppression des balises HTML

Problème : les retours à la ligne dans le code sont présents aussi dans le texte de sortie.

Je vais donc utiliser à nouveau la fonction REGEXREPLACE pour m'en débarrasser (je les remplace par un seul et unique retour à la ligne avec CHAR(10)).

J'utilise également TRIM pour supprimer les espaces (début et fin) + les doubles espaces.

=TRIM(REGEXREPLACE(REGEXREPLACE(D11;"<((no)?script|style)[^<]+<\/((no)?script|style)>|<[^>]+>";"");"\n+";CHAR(10)))
Suppression des balises HTML + retours à la ligne

Si des espaces traînent encore dans le code, tu pourras les supprimer avec REGEXREPLACE de cette façon :

=REGEXREPLACE(B2;"\s{3,}";" ")

Et voilà !

Google Sheets

Antoine Brisset Twitter

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


Articles Similaires

Membres Public

Comment analyser des paramètres d'URL avec Google Sheets ?

L'édition du jour est directement inspirée de l'article paru il y a a quelques jours sur le blog Yapasdequoi d'Aymeric Bouillat. Dans son (très bon) article, Aymeric explique comment faire l'agrégation du nombre de hits Googlebot sur les paramètres d'URL

Comment analyser des paramètres d'URL avec Google Sheets ?
Membres Public

RECHERCHEV dans Google Sheets : comment retourner plusieurs colonnes à la fois ?

Il y a quelques jours, Mickaël Zerrougui a partagé un petit tuto sympa sur la RECHERCHEV en SEO. Si tu l'as loupé, je te le remets ici ⬇️ 🏆 La RechercheV en SEO 🏆 Y'a des SEO qui savent toujours pas utiliser la rechercheV ?😱 Vous en avez marre des

RECHERCHEV dans Google Sheets : comment retourner plusieurs colonnes à la fois ?
Membres Public

Comment extraire les dossiers d'une URL avec Google Sheets ?

La semaine dernière, Nicolas m'interpellait sur Twitter suite à ce tweet. Help : Tips Gsheet Hello les SEO J ai des urls dans mon gsheet du type : Site/cat/cat1/cat2 etc.. J’aimerai extraire automatiquement les 2 derniers slug d’url Une idee ? — Nicolas Evenou (@NicolasEvenou) October 23,

Comment extraire les dossiers d'une URL avec Google Sheets ?