Ouvrir le Studio

Web Scraper

Le node Web Scraper récupère une page web et en extrait le contenu via des templates intégrés ou des sélecteurs XPath personnalisés, en renvoyant le résultat sous forme de chaîne unique pour le traitement en aval.

Node Web Scraper Studio enchaîne étapes extraction données pages françaises workflow

À quoi sert le node Web Scraper ?

Le node Web Scraper récupère une page web depuis une URL et en extrait le contenu. Il peut fonctionner en mode brut (sans template) et renvoyer le contenu de la page sous forme de texte, appliquer l’un des quatre templates intégrés adaptés aux types de pages courants (articles, listes d’articles, produits, listes de produits), ou cibler des éléments précis avec jusqu’à trois sélecteurs XPath. Le node renvoie une chaîne unique que les nodes en aval peuvent nettoyer, parser ou envoyer à un LLM.

Cas d’usage typiques :

  • Récupérer le corps d’articles de blog ou de presse avant de les résumer avec un LLM.
  • Collecter des fiches produit (nom, prix, description) depuis des listings e-commerce dans un dataset structuré.
  • Extraire des éléments précis d’une page connue à l’aide de XPath (prix, notes, champs cachés).
  • Itérer sur une liste d’URL dans un Loop pour bâtir un corpus de contenu ou une veille concurrentielle.

Configuration rapide

Suivez ces étapes pour ajouter et configurer le node Web Scraper dans votre workflow :

Ajouter le node au canevas

Ouvrez la bibliothèque de nodes (Node Library), allez dans Integrations, puis glissez-déposez le node Web Scraper sur votre espace de travail.

Connecter ou saisir l’URL

Saisissez directement une URL statique dans l’entrée Url(s), ou reliez la sortie d’un node en amont (Text Input, Loop, JSON Path Extractor) qui fournit l’URL à scraper.

Choisir un template de contenu

Dans les paramètres du node, choisissez un Content Type : conservez No Template pour la page brute, ou sélectionnez Article, ArticleList, Product, ProductList pour appliquer un profil d’extraction prédéfini.

(Optionnel) Ajouter des sélecteurs XPath

Ouvrez la section XPath Selectors et remplissez XPath 1, XPath 2 et/ou XPath 3 pour cibler des nodes DOM précis (ex : //div[@class='product-price']).

Choisir la gestion des erreurs

Sélectionnez une stratégie d’Error Handling : None pour faire échouer le run en cas d’erreur, ou Skip & Continue pour renvoyer une chaîne vide pour cette URL et poursuivre.

Connecter la sortie

Reliez le point de sortie (à droite du node) au node suivant, puis créez et nommez votre propre variable dans ce node suivant pour recevoir le contenu scrapé.

Paramètres de configuration

Paramètres Web Scraper sélecteurs auth export cadence gabarit crawl française interface

Le Web Scraper expose un point d’entrée et quatre paramètres métier en plus des champs d’identification standard.

Champs requis

Name string required default: Scraping Tool

Nom du node — Important pour identifier rapidement le rôle de ce node (ex : Scraping page produit concurrent) lors de l’exécution et du débogage du workflow.

Description string required default: A tool to scrape web content using XPath selectors

Description du node — Phrase courte décrivant ce que ce node de scraping récupère dans le contexte de votre workflow.

Url(s) string required

URL à scraper — L’URL de la page web à récupérer. Peut être une chaîne en dur ou une variable injectée par un node en amont (Text Input, itération de Loop, JSON Path Extractor, etc.).

Content Type string required default: No Template

Template d’extraction — Définit la façon d’extraire la page. Valeurs disponibles :

ValeurComportement
No TemplateRenvoie le contenu brut de la page, sans template.
ArticleExtrait un article unique (titre, corps, métadonnées).
ArticleListExtrait une liste d’articles depuis une page d’index.
ProductExtrait un produit unique (nom, prix, description).
ProductListExtrait une liste de produits depuis une page de listing.
Error Handling string required default: None

Stratégie de gestion d’erreur — Contrôle la réaction du node lorsque la page ne peut être récupérée ou parsée :

ValeurComportement
NoneEn cas d’erreur, le node s’arrête et le run du workflow échoue.
Skip & ContinueEn cas d’erreur, le node renvoie une chaîne vide pour cette URL et l’exécution continue.

Champs optionnels

XPath 1 string default: Empty

Premier sélecteur XPath — Expression XPath personnalisée pour cibler un élément précis de la page (ex : //div[@class='product-title']). Combinée avec le template choisi lorsque les deux sont renseignés.

XPath 2 string default: Empty

Deuxième sélecteur XPath — XPath additionnel, typiquement utilisé pour extraire une seconde information (ex : //div[@class='product-price']).

XPath 3 string default: Empty

Troisième sélecteur XPath — XPath additionnel, typiquement utilisé pour extraire une troisième information (ex : //div[@class='product-description']).

Tip

Commencez avec No Template et un seul XPath en prototypage, inspectez le résultat brut, puis passez à un template (Article, Product…) seulement une fois que vous savez quels champs vous utilisez réellement en aval.

Que renvoie le node ?

Le node renvoie une chaîne unique nommée html qui contient le contenu scrapé. La forme exacte de cette chaîne dépend du Content Type choisi et des sélecteurs XPath :

  • Avec No Template, la sortie est le contenu brut de la page (généralement du HTML).
  • Avec un template (Article, ArticleList, Product, ProductList), la sortie est une représentation textuelle sérialisée des champs extraits.
  • Avec des sélecteurs XPath, la sortie se concentre sur les nodes DOM correspondants.

Comment utiliser la sortie

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

  1. Tirez une connexion depuis la sortie du Web Scraper.
  2. Reliez-la à l’entrée du node suivant (HTML to Markdown, HTML Cleaner, JSON Path Extractor, LLM, etc.).
  3. Dans ce node suivant, créez et nommez votre propre variable (par exemple scraped_page). Le contenu scrapé y sera injecté automatiquement.
html string

Le contenu scrapé, renvoyé sous forme de chaîne. Vide lorsque l’URL ne se charge pas et que Error Handling est positionné sur Skip & Continue.

Exemples d’utilisation

Exemple 1 : Scraper un article et le résumer avec un LLM

Vous voulez transformer n’importe quelle URL d’article en un briefing court.

Workflow :

  1. Text Input contient l’URL de l’article.
  2. Web Scraper la récupère avec Content Type = Article et Error Handling = Skip & Continue.
  3. HTML to Markdown nettoie la sortie pour le LLM.
  4. LLM reçoit le markdown et produit le résumé.

Configuration du Web Scraper :

  • Url(s) = {{Text_0.value}}
  • Content Type = Article
  • Error Handling = Skip & Continue

Exemple 2 : Extraction produit ciblée avec XPath

Vous suivez la fiche produit d’un concurrent et n’avez besoin que du titre, du prix et de la description.

Exemple XPath triple sur fiche concurrent Web Scraper interface française Illustration settings

Configuration du Web Scraper :

  • Url(s) = https://shop.example.com/product/123
  • Content Type = Product
  • XPath 1 = //div[@class='product-title']
  • XPath 2 = //div[@class='product-price']
  • XPath 3 = //div[@class='product-description']
  • Error Handling = None

La sortie html contient alors les trois blocs ciblés, prêts à être parsés par un JSON Path Extractor ou envoyés à un LLM pour normalisation.

Exemple 3 : Scraping en lot avec un Loop

Vous disposez d’une liste d’URL et voulez scraper chacune puis stocker le résultat.

Workflow :

  1. Create List (ou un API Connector en amont) fournit la liste d’URL.
  2. Loop itère sur chaque élément.
  3. Web Scraper scrape l’URL courante avec Url(s) = {{Loop_0.currentItem}} et Error Handling = Skip & Continue afin qu’une page en échec n’interrompe pas le run.
  4. Sauvegarde / ajout du résultat en aval (Sheets, base de données, fichier).

Problèmes courants

La sortie est vide alors que l'URL fonctionne dans mon navigateur

Cause : La page peut afficher son contenu via JavaScript après le chargement, ou bloquer les requêtes automatisées : dans ce cas le HTML brut vu par le scraper ne contient pas le texte attendu.

Solution : Ouvrez le code source de la page (et non le DOM des dev tools) pour vérifier que la donnée est bien présente dans le HTML initial. Si elle est rendue côté client, le Web Scraper ne peut pas l’atteindre. Si la page bloque les scrapers, basculez sur une API officielle ou une autre source.

Un XPath ne renvoie rien

Cause : Le XPath ne correspond pas à la structure réelle du DOM, ou il cible des attributs différents de ce qui est rendu côté serveur.

Solution : Testez d’abord le XPath dans les dev tools du navigateur ($x("//div[@class='product-title']")). Préférez des sélecteurs robustes (contains(@class, 'price')) plutôt que des sélecteurs fragiles dépendant de classes volatiles.

Mon workflow s'arrête à la première mauvaise URL dans un Loop

Cause : Error Handling est positionné sur None, donc la première réponse non-200 ou erreur de parsing arrête le run.

Solution : Passez Error Handling sur Skip & Continue. Le node renvoie une chaîne vide pour l’URL en échec et le Loop continue sur l’élément suivant.

La sortie est difficile à donner à un LLM

Cause : Le HTML brut contient beaucoup de balisage inutile pour le modèle.

Solution : Placez un node HTML Cleaner ou HTML to Markdown entre le Web Scraper et le LLM pour réduire le bruit et la consommation de tokens.

Bonnes pratiques et pièges

Tip

Positionnez toujours Error Handling sur Skip & Continue lorsque le Web Scraper est dans un Loop. Une URL inaccessible sur cent ne devrait pas faire échouer le batch entier.

Warning

Respectez les sites cibles. Vérifiez les conditions d’utilisation et le robots.txt avant de scraper à grande échelle, espacez vos Loops pour ne pas saturer les serveurs, et préférez les API officielles quand elles existent.

Comment s’intègre-t-il dans un workflow ?

Le Web Scraper se place typiquement entre un node qui produit des URL et un node qui nettoie ou interprète le résultat. Voici un schéma classique de scraping en lot avec nettoyage et analyse LLM :

graph LR
    Source[Liste d'URL / API Connector] --> Loop[Loop]
    Loop --> Scraper[Web Scraper]
    Scraper --> Clean[HTML to Markdown]
    Clean --> LLM[Analyse LLM]
    LLM --> Out[Sauvegarder résultats]

Nodes associés