ToolPal
Lignes de code HTML sur un écran sombre d'éditeur de code

HTML vers texte : supprimer les balises et obtenir du texte brut propre

📷 Florian Olivo / Pexels

HTML vers texte : supprimer les balises et obtenir du texte brut propre

Apprenez à extraire le texte brut depuis du HTML, à décoder les entités, à conserver les sauts de ligne, et à choisir entre conversion HTML-vers-texte et HTML-vers-Markdown.

12 avril 202612 min de lecture

Il y a une frustration bien particulière qui vient du fait de copier du texte depuis une page web et de le coller sous forme d'une muraille de balises <p> et de &nbsp;. Ou d'ouvrir un template d'email HTML dans un éditeur de texte pour y trouver une citation, et de tomber sur une soupe de <td> et <span style="color:#333333"> autour de chaque mot.

C'est exactement le problème que résout un convertisseur HTML vers texte. Ça paraît simple — supprimer les balises, afficher le texte — mais il y a suffisamment de subtilités (entités, sauts de ligne, normalisation des espaces) pour que bien le faire nécessite plus qu'un simple remplacement par regex. Voyons ce qui se passe vraiment sous le capot, quand on a besoin de cet outil, et où il montre ses limites.

Ce que fait vraiment un convertisseur HTML vers texte

En surface, convertir du HTML en texte signifie supprimer tout ce qui se trouve entre des balises < >. Mais ce n'est que le début.

La suppression des balises est la partie évidente. Chaque élément — <div>, <p>, <span>, <a>, <img>, et tous les autres — est éliminé. Ce qui reste, c'est le contenu entre les balises ouvrantes et fermantes.

Le décodage des entités est là où beaucoup d'implémentations naïves échouent. HTML utilise des entités pour représenter des caractères qui casseraient autrement le balisage. Le symbole & devient &amp;. Le signe inférieur à < devient &lt;. L'espace insécable devient &nbsp;. Les guillemets typographiques apparaissent souvent comme &#8220; et &#8221;. Si votre convertisseur ne fait que supprimer les balises sans décoder les entités, votre "texte brut" sera rempli de ces codes en clair. Pas vraiment lisible.

Un bon convertisseur décode l'ensemble des entités nommées (&amp;, &lt;, &gt;, &quot;, &apos;, &nbsp; et les centaines d'autres comme &mdash;, &copy;, &reg;) ainsi que les entités numériques en décimal (&#160;) et en hexadécimal (&#xA0;).

La préservation des sauts de ligne est le troisième aspect. Les règles d'espacement HTML sont différentes de celles du texte brut — les espaces multiples se réduisent à un seul, et les retours à la ligne dans le code source ne signifient rien visuellement. La structure visible dans un navigateur vient des éléments de bloc : <p>, <div>, <h1> à <h6>, <li>, <blockquote>, <br>, <hr>, etc. Un convertisseur bien conçu insère des retours à la ligne ou des lignes vides lorsqu'il rencontre ces éléments, afin que le résultat soit structuré et non une longue ligne continue.

Allez sur /tools/html-to-text, collez votre HTML, et l'outil gère automatiquement ces trois aspects.

Cas d'usage concrets

Voici les situations où j'utilise vraiment ce type d'outil, parce qu'elles sont plus variées qu'on ne le penserait.

Nettoyage du HTML des emails

Les templates d'emails marketing modernes sont notoirement verbeux. Quand un collègue vous transfère un email pour que vous en citiez quelque chose, et que la seule version disponible est le fichier .eml brut ou un copier-coller confus depuis Outlook, vous vous retrouvez avec un contenu comme :

<td class="mcnTextContent" style="padding-top:0;padding-right:18px;padding-bottom:9px;padding-left:18px;">
  <p>Nous sommes ravis d'annoncer notre feuille de route produit Q2&hellip;</p>
</td>

Collez ça dans le convertisseur, et vous obtenez :

Nous sommes ravis d'annoncer notre feuille de route produit Q2…

C'est la seule partie qui vous intéressait vraiment.

Préparation des versions en texte brut des emails

Si vous envoyez des campagnes d'emails HTML, vous devriez aussi envoyer une version de secours en texte brut — cela améliore la délivrabilité et sert les destinataires dont les clients de messagerie ne rendent pas le HTML. Rédiger à la main la version texte à partir d'un template conçu graphiquement est fastidieux. Passer le HTML dans un convertisseur vous donne une première ébauche que vous affinez ensuite en ajoutant de vrais retours à la ligne, en supprimant les liens de navigation redondants, et ainsi de suite.

Le résultat ne sera pas parfait — les menus de navigation et les en-têtes très graphiques produisent souvent un résultat peu lisible — mais c'est un bien meilleur point de départ qu'un fichier vide.

Web scraping et extraction de contenu

Lors du scraping d'une page web, on récupère généralement le HTML complet, qui inclut navigation, barres latérales, publicités, pieds de page et scripts aux côtés du contenu réel. Après avoir ciblé le conteneur principal du contenu, on se retrouve souvent encore avec du HTML. Le passer dans un convertisseur donne le texte lisible.

Pour des tâches de scraping ponctuelles — récupérer une description produit, extraire le texte d'un article de blog, copier une recette — coller le HTML dans l'outil est bien plus rapide que d'écrire un parseur. Pour des tâches systématiques ou à grande échelle, vous voudrez des outils côté serveur, mais pour une tâche rapide, c'est imbattable.

Alimentation de bases de données ou d'index de recherche

Si vous stockez du contenu en HTML (dans un CMS ou un champ d'éditeur de texte enrichi) mais avez besoin de texte brut pour l'indexation de recherche en texte intégral, l'entrée dans un modèle d'IA, ou l'affichage dans un contexte qui ne rend pas le HTML, vous avez besoin d'une extraction propre. La conversion en texte brut donne une version sûre à indexer, comparer ou transmettre à des systèmes en aval.

Coller dans des contextes texte brut

Google Docs, Notion, les éditeurs de texte brut, les templates SMS, les sorties terminal — il y a de nombreux endroits qui acceptent le texte mais pas le HTML. Copier du texte depuis un navigateur entraîne souvent un formatage HTML caché. Convertir d'abord puis coller depuis la sortie texte brut évite ce problème.

Ce que sont les entités HTML et pourquoi elles comptent

Ce sujet mérite une explication plus détaillée car il piège beaucoup de monde.

La spécification HTML définit un ensemble de références de caractères nommées — des chaînes comme &amp;, &lt;, &gt;, &quot; — qui représentent des caractères spéciaux. La raison de leur existence : HTML est lui-même un format texte qui utilise <, > et & comme caractères de syntaxe. Pour afficher un < littéral dans un navigateur, il faut écrire &lt; en HTML, sinon le navigateur croit qu'on ouvre une nouvelle balise.

Quand on supprime les balises HTML sans décoder les entités, voici ce qu'on obtient :

HTML d'entrée :
<p>Le prix est 10 € &amp; la livraison est gratuite. Voir la page &lt;détails&gt;.</p>

Après suppression des balises seulement :
Le prix est 10 € &amp; la livraison est gratuite. Voir la page &lt;détails&gt;.

Après suppression des balises + décodage des entités :
Le prix est 10 € & la livraison est gratuite. Voir la page <détails>.

La deuxième version est ce que les lecteurs verraient dans un navigateur. C'est ce qu'on veut.

Quelques entités courantes que vous rencontrerez :

  • &amp;&
  • &lt;<
  • &gt;>
  • &nbsp; → espace insécable (souvent rendu comme espace normal)
  • &mdash; (tiret cadratin)
  • &hellip; (points de suspension)
  • &copy;©
  • &#8220; et &#8221;" et " (guillemets typographiques)

Un bon convertisseur gère tout cela de manière transparente.

HTML vers texte vs HTML vers Markdown

Les deux convertissent du HTML vers un autre format, mais servent des objectifs différents.

Utilisez HTML vers texte quand :

  • Vous avez besoin d'un contenu vraiment brut et sans mise en forme
  • Vous transmettez la sortie à un système qui ne comprend pas le Markdown
  • Vous créez des versions texte brut d'emails
  • Vous faites de l'analyse textuelle ou du traitement du langage naturel où le balisage n'est que du bruit
  • Vous devez assainir du HTML généré par l'utilisateur pour un stockage ou une comparaison sûrs

Utilisez HTML vers Markdown quand :

  • Vous voulez préserver la structure du document (titres, gras, italique, liens, listes)
  • Vous migrez du contenu d'un CMS HTML vers un système basé sur Markdown
  • Vous prévoyez de re-rendre le contenu quelque part qui supporte le Markdown
  • Vous voulez quelque chose qu'un humain peut encore éditer confortablement

La différence clé : HTML vers texte perd toute structure de mise en forme. HTML vers Markdown conserve la structure sous une forme lisible et éditable. Si vous migrez un blog de WordPress vers Astro ou Hugo, la conversion Markdown est ce qu'il vous faut. Si vous extrayez du texte pour un moteur de recherche ou un modèle de langage, le texte brut est probablement plus propre.

Le comportement des sauts de ligne et ce à quoi s'attendre

L'une des parties les plus délicates de la conversion HTML vers texte est la gestion des espaces blancs.

En HTML, les retours à la ligne dans le code source sont traités comme des espaces, et les espaces multiples se réduisent à un seul. Les sauts de ligne visibles que l'on voit dans un navigateur viennent entièrement des éléments de bloc et du CSS. Quand on supprime les balises, il faut décider quoi faire à chaque frontière d'élément.

Un ensemble de règles raisonnables :

  • <br> → saut de ligne simple
  • <p>, <div>, <h1> à <h6> → double saut de ligne (ligne vide avant et après)
  • <li> → saut de ligne avec un préfixe puce ou numéro
  • <hr> → une ligne de tirets ou simplement une ligne vide
  • Éléments en ligne (<span>, <a>, <strong>, <em>) → uniquement leur contenu textuel, sans espacement supplémentaire

L'outil HTML vers texte applique des règles similaires pour que la sortie soit lisible et raisonnablement structurée, plutôt qu'une seule ligne massive.

Limitations : où cet outil montre ses limites

Voici ce que la conversion HTML vers texte ne fait pas bien.

Les images disparaissent complètement. Il n'y a pas d'équivalent en texte brut pour une image. La balise <img> est supprimée avec son src, son alt et tout le reste. Si une image portait une information importante — un graphique, un diagramme, un logo — cette information est perdue. Si vous avez besoin que le texte alternatif soit préservé, envisagez de convertir vers Markdown (où les images deviennent ![texte alt](url)).

Les tableaux complexes s'aplatissent mal. Les tableaux HTML utilisés pour la mise en page — les vieux templates d'email <table> — produisent souvent une sortie difficile à lire en texte brut. Les cellules sont concaténées dans l'ordre de lecture, ce qui peut ou non correspondre à ce qu'un humain attendrait.

Le contenu masqué par CSS est quand même inclus. Les éléments avec display: none ou visibility: hidden sont toujours présents dans le code HTML source, ce qui signifie que leur contenu textuel apparaît dans la sortie texte brut. Si une page a un menu mobile caché, un titre dupliqué caché, ou du texte de bulle d'aide caché, tout cela apparaît.

Le contenu rendu par JavaScript ne sera pas là. Si vous collez le code source HTML brut d'une page qui charge son contenu dynamiquement via JavaScript, le convertisseur ne voit que ce qui est dans le HTML statique — ce qui peut être très peu. Pour les pages rendues par JS, vous auriez besoin d'un navigateur headless pour obtenir d'abord la sortie rendue.

Pas d'interprétation sémantique. Le convertisseur ne sait pas que <nav> est une navigation que vous voudriez peut-être ignorer, ou que <aside> est une barre latérale que vous ne voulez probablement pas dans votre contenu extrait. Il traite tous les éléments de la même façon.

Pour le web scraping en production, vous êtes mieux servis par BeautifulSoup (Python) ou cheerio (Node.js), qui vous permettent de cibler des éléments spécifiques avant d'extraire le texte. L'outil HTML vers texte est idéal pour des conversions rapides et ponctuelles où ces compromis sont acceptables.

Outils complémentaires

Le convertisseur HTML vers texte s'intègre naturellement avec quelques autres outils :

  • Encodeur HTML : l'inverse du décodage des entités — encode les caractères spéciaux en entités HTML. Utile quand vous devez intégrer du texte dans du HTML de manière sûre.
  • HTML vers Markdown : quand vous devez préserver la structure plutôt que la supprimer. Mieux pour la migration de contenu.
  • Minificateur HTML : quand vous voulez garder le HTML mais réduire sa taille de fichier en supprimant les espaces blancs, les commentaires et les attributs redondants. Objectif différent — vous ne cherchez pas à extraire le contenu, mais à compresser le balisage.

Un exemple de workflow rapide

Voici un scénario réaliste : vous avez scrapé une page de description produit et vous avez le HTML brut de l'élément <main>. Vous voulez le texte brut pour un tableur de comparaison.

  1. Copiez le HTML depuis votre outil de scraping ou les DevTools du navigateur.
  2. Collez-le dans /tools/html-to-text.
  3. La sortie apparaît avec les balises supprimées, les entités décodées et les éléments de bloc convertis en sauts de ligne.
  4. Copiez le résultat dans votre tableur.

Temps total : environ 15 secondes. Le faire avec une regex dans la console du navigateur prendrait plus longtemps et manglerait presque certainement les entités.

Conclusion

La conversion HTML vers texte est une de ces tâches qui paraît triviale jusqu'à ce qu'on l'essaie vraiment — et là on réalise qu'il y a trois ou quatre couches de complexité à gérer correctement pour obtenir une sortie utilisable. Les balises sont la partie évidente ; les entités et la normalisation des espaces sont ce qui piège les gens.

L'outil HTML vers texte gère tout cela en une seule étape. Pour des extractions rapides et ponctuelles — depuis des emails, des pages scrapées, des exports CMS, ou partout où vous avez un bloc de HTML — c'est le chemin le plus rapide du balisage vers le texte brut.

Si vous avez besoin de préserver la mise en forme plutôt que de la supprimer, consultez HTML vers Markdown. Et si vous travaillez directement avec des entités HTML, l'Encodeur HTML et le Minificateur HTML complètent la boîte à outils.

Questions Fréquentes

Partager

XLinkedIn

Articles associés