Ouvrir le Studio

HTML Cleaner

Le node HTML Cleaner supprime les balises et attributs HTML indésirables d'un contenu brut pour produire une version allégée et assainie, prête à être traitée.

Node HTML Cleaner sur le canevas nettoyant le HTML entrant relié

À quoi sert le node HTML Cleaner ?

Le node HTML Cleaner prend du HTML brut en entrée et supprime les balises structurelles ou techniques dont vous n’avez pas besoin, comme <script>, <style>, <meta>, <header>, <footer>, <nav>, <iframe>, <img>, <svg> ou <video>. Il peut également retirer tous les attributs HTML (classes, ids, styles inline, attributs data) pour réduire drastiquement le bruit. La sortie peut être renvoyée en texte brut ou en HTML allégé.

Il se place typiquement juste après un Web Scraper ou tout node renvoyant du HTML brut, avant d’envoyer le contenu vers un LLM, un convertisseur HTML to Markdown ou une base de données.

Cas d’usage typiques :

  • Nettoyer une page web scrapée avant de l’envoyer à un LLM, pour réduire le nombre de tokens et supprimer publicités, menus de navigation et scripts tiers.
  • Préparer du HTML pour une conversion en Markdown en supprimant les balises qui pollueraient ou casseraient la conversion.
  • Assainir du HTML provenant d’un utilisateur ou d’un tiers avant de le stocker ou de l’afficher ailleurs.

Configuration rapide

Suivez ces étapes pour ajouter et configurer le node HTML Cleaner dans votre workflow :

Ajouter le node au canevas

Ouvrez la bibliothèque de nodes (Node Library), naviguez dans Tools > Data Transformation, puis glissez-déposez le node HTML Cleaner sur votre espace de travail.

Connecter l’entrée

Reliez le point d’entrée (à gauche du node) à la sortie du node précédent qui fournit le HTML brut (typiquement un Web Scraper, une HTTP Request ou un Input texte contenant du HTML).

Choisir ce que vous voulez supprimer

Ouvrez les paramètres du node. Activez les balises à retirer (tous les interrupteurs sont activés par défaut) et décidez si les attributs doivent également être supprimés.

Choisir le format de sortie

Dans la liste déroulante Output, sélectionnez Text pour obtenir uniquement du texte brut, ou HTML pour conserver la structure HTML restante.

Connecter la sortie

Reliez la sortie (à droite du node) au node suivant et créez-y un nom de variable pour récupérer le contenu nettoyé.

Paramètres de configuration

Paramètres HTML Cleaner liste balises mode liste blanche et nettoyage

Configurer ce node consiste essentiellement à choisir quels éléments HTML retirer et sous quel format vous voulez le résultat.

Champs requis

Name string required default: HTML Cleaner

Nom du node — Permet d’identifier ce node dans le workflow (ex : « Nettoyage article scrapé ») pour faciliter le débogage quand vous avez plusieurs cleaners successifs.

Description string required default: Clean HTML content by removing unwanted tags

Description du node — Une courte phrase décrivant ce que cette instance de cleaner est censée faire.

HTML string required

Entrée HTML — La chaîne HTML brute à nettoyer. Le node vérifie que l’entrée commence par < et finit par >, sinon il lève l’erreur HtmlTextExtractorTool : Input is not valid HTML.

Champs optionnels

Remove <script> boolean default: true

Supprime toutes les balises <script> et leur contenu (JS inline, pixels de tracking, loaders tiers).

Remove <meta> boolean default: true

Supprime les balises <meta> (charset, viewport, OpenGraph, descriptions SEO).

Remove <link> boolean default: true

Supprime les balises <link> (feuilles de style, favicons, preloads).

Remove <style> boolean default: true

Supprime les blocs <style> et leurs règles CSS.

Remove <no_script> boolean default: true

Supprime les blocs <noscript> (contenu de repli affiché quand JavaScript est désactivé).

Remove <head> boolean default: true

Supprime l’intégralité de la section <head> du document.

Remove <img> <svg> boolean default: true

Supprime tous les éléments <img> et <svg>. Utile quand vous ne voulez pas de bruit lié aux images dans votre sortie texte.

Remove <video> boolean default: true

Supprime les balises <video> et leurs sources.

Remove <iframe> boolean default: true

Supprime les balises <iframe> (contenu intégré, widgets tiers, players vidéo).

Remove <header> boolean default: true

Supprime le bloc <header> de la page (logo, navigation supérieure).

Remove <nav> boolean default: true

Supprime les blocs <nav> (menus, fils d’Ariane).

Remove <footer> boolean default: true

Supprime le bloc <footer> de la page (mentions légales, contact, liens secondaires).

Remove attributes boolean default: true

Retire tous les attributs HTML (class, id, style, data-*, onclick, etc.) des balises restantes. Réduit fortement le nombre de tokens lors de l’envoi à un LLM.

Output enum default: Text

Format du contenu nettoyé :

  • Text — renvoie uniquement le contenu textuel (balises retirées).
  • HTML — renvoie la chaîne HTML nettoyée avec les balises restantes conservées.
Tip

Laissez tous les interrupteurs activés par défaut. Désactivez-en un uniquement quand vous avez spécifiquement besoin de cette balise plus loin dans le workflow (par exemple, gardez <img> si vous prévoyez d’extraire des URLs d’images à l’étape suivante).

Que renvoie le node ?

Le node renvoie une seule chaîne contenant le contenu nettoyé. Sa forme dépend du paramètre Output sélectionné.

Output string

Le contenu nettoyé. Avec Text, uniquement le texte visible, toutes les balises retirées. Avec HTML, le HTML restant après suppression des balises et attributs sélectionnés.

Comment récupérer l’output ?

Dans Draft & Goal, vous n’avez pas besoin de chercher un nom de variable complexe généré par le système. Pour exploiter le résultat :

  1. Tirez un lien depuis la sortie du node HTML Cleaner.
  2. Connectez-le à l’entrée du node suivant.
  3. Dans ce node suivant, créez et nommez votre propre variable (par exemple, cleaned_html ou texte_article). Le contenu nettoyé y sera injecté automatiquement.

Exemples d’utilisation

Cas 1 : Nettoyer un article scrapé avant de l’envoyer à un LLM

Vous scrapez un article de blog et voulez que le LLM le résume sans payer de tokens pour la navigation, les pubs et le bruit CSS.

Configuration :

  • Tous les interrupteurs Remove <...> : activés
  • Remove attributes : activé
  • Output : Text

Pattern : Web ScraperHTML CleanerLLM (résumé). La consommation de tokens de l’étape LLM diminue typiquement de 50 % à 90 % comparée à l’envoi de la page brute.

Cas 2 : Conserver une structure HTML propre pour la conversion en Markdown

Vous voulez convertir le corps de l’article en Markdown tout en gardant les paragraphes, titres et liens.

Configuration :

  • Remove <script>, Remove <style>, Remove <meta>, Remove <link>, Remove <head>, Remove <header>, Remove <nav>, Remove <footer>, Remove <iframe>, Remove <video>, Remove <no_script> : activés
  • Remove <img> <svg> : désactivé (vous voulez les références d’images dans le Markdown)
  • Remove attributes : activé
  • Output : HTML

La sortie conserve les <h1>, <h2>, <p>, <a>, <img>, <ul>, etc., mais retire les classes et styles inline, ce qui est l’entrée idéale pour le node HTML to Markdown.

Problèmes courants

Le node échoue avec `HtmlTextExtractorTool : Input is not valid HTML`

Cause : La chaîne d’entrée ne commence pas par < ou ne finit pas par >. Le node fait un contrôle strict avant de s’exécuter.

Solution : Vérifiez que le node amont renvoie bien du HTML. S’il renvoie du JSON ou enveloppe le HTML entre guillemets ou espaces, ajoutez un Find and Replace ou une étape d’extraction au préalable. Les espaces de début et de fin sont déjà tronqués par le node, mais tout autre contenu autour du HTML provoquera une erreur.

La sortie est vide ou quasi vide

Cause : Trop d’interrupteurs sont activés et le contenu utile se trouvait dans l’un des blocs supprimés (souvent <header> sur les sites éditoriaux qui y placent les titres).

Solution : Désactivez Remove <header> (ou toute autre balise dont vous avez réellement besoin du contenu) et relancez. Inspectez une fois le HTML brut avec les interrupteurs désactivés pour identifier la structure.

La sortie contient encore du texte qui ressemble à du JavaScript

Cause : Le contenu du script n’est pas encapsulé dans une balise <script> — par exemple, le JSON-LD à l’intérieur de <script type="application/ld+json"> est bien retiré, mais du texte injecté dans un <div> ne le sera pas.

Solution : Combinez le HTML Cleaner avec un node Find and Replace plus loin pour retirer les motifs résiduels, ou faites un pré-traitement avec un scraper plus sélectif.

Bonnes pratiques et pièges à éviter

Tip

Quand l’étape suivante est un LLM, activez toujours Remove attributes. Les classes CSS et attributs data-* consomment une quantité étonnante de tokens pour zéro valeur sémantique.

Warning

Ne supprimez pas aveuglément <header> et <nav> sur les sites de documentation ou les wikis : ils contiennent parfois le titre de l’article ou la table des matières que vous voulez justement garder.

Info

Choisissez Output: Text quand la destination est un LLM qui n’a besoin que de lire le contenu. Choisissez Output: HTML quand la destination a besoin de la structure (titres, liens, listes), typiquement avant une étape HTML to Markdown.

graph LR
    Scraper[Web Scraper] --> Cleaner[HTML Cleaner]
    Cleaner --> Markdown[HTML to Markdown]
    Markdown --> LLM[LLM résumé]
    Cleaner -.mode text.-> LLM

Nodes complémentaires