Ouvrir le Studio

Web Scraper

Extraire le contenu de n'importe quelle page web automatiquement

À quoi sert ce node ?

Le node Web Scraper récupère et extrait le contenu de n’importe quelle page web. C’est l’un des nodes les plus utilisés pour collecter des données depuis des sites, que ce soit pour l’analyse de contenu, la collecte de données ou la recherche.

Utilisations courantes :

  • Extraire le contenu d’articles pour une analyse par IA
  • Récupérer des informations produits
  • Collecter des données concurrentes
  • Constituer des jeux de données de contenu

Configuration rapide

Ajouter le node Web Scraper

Trouvez-le dans IntegrationsWeb Scraper

Saisir ou connecter une URL

Indiquez l’URL de la page à scraper

Choisir un modèle de contenu (optionnel)

Sélectionnez un modèle pour une extraction structurée

Exécuter et récupérer le contenu

Lancez pour recevoir le contenu extrait

Configuration

Champs obligatoires

url string required

L’URL de la page web à scraper.

Exemples :

  • Statique : https://example.com/article
  • Dynamique : {{Text_0.value}} (depuis une entrée)
  • Depuis une boucle : {{Loop_0.currentItem.url}}

Champs optionnels

content_type string default: No Template

Modèle d’extraction prédéfini pour les types de pages courants.

ModèleExtrait
No TemplateContenu brut de la page
ArticleTitre, auteur, date, corps, images
ArticleListListe de liens d’articles avec titres
ProductNom, prix, description, spécifications
ProductListListe de produits avec détails
xpath_1 string

Expression XPath personnalisée pour une extraction ciblée.

Exemples :

  • Contenu principal : //article ou //div[@class='content']
  • Tous les paragraphes : //p
  • Élément spécifique : //div[@id='main-text']
xpath_2 string

Deuxième XPath pour une extraction supplémentaire.

xpath_3 string

Troisième XPath pour une extraction supplémentaire.

Sortie

Le node renvoie le contenu extrait :

{
  "url": "https://example.com/article",
  "title": "Article Title",
  "metaDescription": "Meta description text...",
  "content": "Main article content...",
  "h1": ["Main Heading"],
  "h2": ["Subheading 1", "Subheading 2"],
  "h3": ["Section 1", "Section 2"],
  "images": [
    {"src": "image1.jpg", "alt": "Description"}
  ],
  "links": [
    {"href": "https://...", "text": "Link text"}
  ],
  "wordCount": 1500,
  "html": "<div>Raw HTML...</div>"
}

Accéder à la sortie

{{WebScraper_0.content}}           → Contenu texte principal
{{WebScraper_0.title}}             → Titre de la page
{{WebScraper_0.metaDescription}}   → Meta description
{{WebScraper_0.wordCount}}         → Nombre de mots
{{WebScraper_0.h1}}                → Tableau des titres H1
{{WebScraper_0.html}}              → HTML brut

Exemples

Extraction de contenu basique

URL : https://blog.example.com/seo-tips

Sortie :

{
  "title": "10 SEO Tips for 2024",
  "content": "Search engine optimization continues to evolve...",
  "wordCount": 2500,
  "h2": ["Tip 1: Focus on E-E-A-T", "Tip 2: Optimize Core Web Vitals", ...]
}

Modèle Article

Content Type : Article

Sortie enrichie :

{
  "title": "10 SEO Tips for 2024",
  "author": "John Smith",
  "publishDate": "2024-01-15",
  "content": "...",
  "categories": ["SEO", "Digital Marketing"],
  "estimatedReadTime": "8 min"
}

Extraction XPath personnalisée

XPath 1 : //div[@class='pricing']//span[@class='price']

Extrait : Tous les éléments de prix de la section tarifs

Schémas courants

Scraper et analyser

graph LR
    A[URL] --> B[Web Scraper]
    B --> C[HTML to Markdown]
    C --> D[LLM Analysis]

Scraping en lot

graph LR
    A[URL List] --> B[Loop]
    B --> C[Web Scraper]
    C --> D[Save to Sheets]

Comparaison de contenu

graph LR
    A[Our Page] --> C[LLM Compare]
    B[Competitor Page] --> C
    C --> D[Report]

Référence XPath

Sélecteurs courants

ObjectifXPath
Tous les paragraphes//p
Tous les liens//a
Par classe//div[@class='content']
Par ID//div[@id='main']
Contient une classe//div[contains(@class, 'article')]
Tag + classe//article[@class='post']
Imbriqué//div[@class='content']//p

Extraire un contenu spécifique

ObjectifXPath
Corps d’article//article ou //main
Navigation//nav
En-tête//header
Pied de page//footer
Toutes les images//img/@src
URLs des liens//a/@href

Bonnes pratiques

Respecter les sites

Warning

Respectez toujours les conditions d’utilisation et le robots.txt des sites. Ajoutez des délais entre les requêtes lors du scraping de plusieurs pages.

  • Vérifiez robots.txt avant de scraper
  • Ajoutez des délais de 2 à 3 secondes entre les requêtes
  • Ne surchargez pas les serveurs avec des requêtes rapides
  • Identifiez votre scraper avec un user-agent approprié

Gérer les erreurs proprement

graph LR
    A[Scrape] --> B{Success?}
    B -->|Yes| C[Process]
    B -->|No| D[Log Error]
    D --> E[Continue/Retry]

Utilisez des nodes Conditional pour vérifier les erreurs :

Si {{WebScraper_0.content}} est_vide
  → Logger "Failed to scrape URL"
  → Passer au suivant
Sinon
  → Continuer le traitement

Optimiser pour le traitement par IA

Convertissez le HTML en Markdown avant de l’envoyer au LLM :

graph LR
    A[Web Scraper] --> B[HTML to Markdown]
    B --> C[LLM]

Les modèles IA fonctionnent mieux avec du Markdown propre qu’avec du HTML brut.

Problèmes courants

Le contenu est vide
  • La page peut nécessiter JavaScript (non pris en charge)
  • Vérifiez que l’URL est correcte et accessible
  • Essayez d’autres sélecteurs XPath
  • La page peut bloquer les scrapers
Mauvais contenu extrait
  • Utilisez un XPath précis pour cibler le bon élément
  • Essayez le modèle Article pour les articles de blog
  • Vérifiez s’il y a plusieurs éléments correspondants
Requête bloquée ou erreur 403
  • Le site peut bloquer les requêtes automatisées
  • Essayez d’ajouter des délais entre les requêtes
  • Consultez robots.txt pour les restrictions
Le contenu est illisible
  • La page peut avoir un encodage inhabituel
  • Essayez le node HTML Cleaner après le scraping
  • Utilisez HTML to Markdown pour un texte propre

Nodes associés