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

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


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

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 au dĂ©but et Ă  la fin.

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

Et voilĂ  !

Commentaires

Posts les plus consultés de ce blog

TOP outils de rĂ©fĂ©rencement gratuits qui valent la peine d'ĂȘtre utilisĂ©s en 2023

Les outils de rĂ©fĂ©rencement gratuits qui valent vraiment la peine d'ĂȘtre utilisĂ©s

Changement de domaine en 2023 : tout ce que vous devez savoir

Chatbot Dialogflow : Tutoriel NoCode NLP pour les spĂ©cialistes du marketing | Landbot

Revenu passif : idées pour gagner de l'argent (en dormant)

Meilleurs outils de rĂ©fĂ©rencement 🛠 organisĂ©e par Saijo George

La toolbox du growth hacker 💎 - Outils - Growthhacking.fr | CommunautĂ© française de growth hacking

Comment signer avec une maison de disques ? Voici notre guide ultime pour 2024

100 outils pour lancer sa startup sans argent (mais pas sans talent)