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 Integrations → Web 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èle | Extrait |
|---|---|
| No Template | Contenu brut de la page |
| Article | Titre, auteur, date, corps, images |
| ArticleList | Liste de liens d’articles avec titres |
| Product | Nom, prix, description, spécifications |
| ProductList | Liste de produits avec détails |
xpath_1 string Expression XPath personnalisée pour une extraction ciblée.
Exemples :
- Contenu principal :
//articleou//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
| Objectif | XPath |
|---|---|
| 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
| Objectif | XPath |
|---|---|
| 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
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