🟡 Gevorderd — beetje technisch ⏱ 3-4 uur n8n

Bouw een AI-webscraper in n8n die data automatisch structureert

Leer hoe je een workflow bouwt die websites bezoekt, ruwe tekst ophaalt, en met behulp van AI automatisch omzet naar gestructureerde data - perfect voor marktonderzoek, competitor tracking of prijsvergelijking.

Tools: n8n (gratis of cloud)OpenAI API keyCheerio (ingebouwd in n8n)
Bouw een AI-webscraper in n8n die data automatisch structureert

Wat je leert in deze handleiding

  • Hoe je HTTP-verzoeken stuurt naar websites in n8n
  • Hoe je HTML parst met de HTML Extract node
  • Hoe je AI gebruikt om ongestructureerde tekst te structureren
  • Hoe je resultaten opslaat in Google Sheets of een database
  • Hoe je de scraper scheduult en monitort

Wat ga je bouwen?

Een n8n workflow die automatisch een lijst van URLs bezoekt, de relevante content extraheert, en via de OpenAI API omzet naar een gestructureerd JSON-object dat je kunt opslaan in Google Sheets of een database.

Stap 1: Schedule Trigger instellen

Begin met een Schedule Trigger node die de workflow dagelijks of wekelijks start. Voor de scraper stel je in: elke dag om 08:00.

Schedule Trigger config
{
  "rule": {
    "interval": [{"field": "cronExpression", "expression": "0 8 * * *"}]
  }
}

Stap 2: URL-lijst ophalen

Gebruik een Google Sheets node (of een Set node met hardcoded URLs) om de te scrapen URLs op te halen. Sla je URL-lijst op in een Google Sheet met kolommen: url, naam, categorie.

Stap 3: HTTP Request - pagina ophalen

Voeg een HTTP Request node toe. Stel in: Method GET, URL uit de vorige stap. Voeg een User-Agent header toe om geblokkeerd worden te voorkomen.

HTTP Request config
{
  "method": "GET",
  "url": "{{$json.url}}",
  "headers": {
    "User-Agent": "Mozilla/5.0 (compatible; research-bot/1.0)"
  }
}

Let op

Scraping moet altijd in overeenstemming zijn met de robots.txt van de website en de gebruiksvoorwaarden. Gebruik een vertraging tussen requests (Split In Batches + Wait node) om servers niet te overbelasten.

Stap 4: HTML extraheren met Cheerio

Gebruik de HTML Extract node om relevante content uit de HTML te halen. Stel de CSS-selector in op het element dat je wilt extraheren, bijv. "article h1, article p" voor artikeltekst.

Stap 5: AI-structurering via OpenAI

Voeg een OpenAI Chat Model node toe. Geef de geextraheerde tekst mee als input en vraag de AI om het te structureren als JSON.

OpenAI Prompt
{
  "model": "gpt-4o-mini",
  "messages": [
    {
      "role": "system",
      "content": "Je bent een data-extractie assistent. Extraheer de gevraagde informatie als JSON."
    },
    {
      "role": "user",
      "content": "Extraheer uit deze tekst: productnaam, prijs, beschrijving, beschikbaarheid.\n\nTekst: {{$json.extractedText}}"
    }
  ]
}

Stap 6: Resultaten opslaan

Parse de JSON-output van OpenAI met een Code node en sla het op in Google Sheets via de Sheets node. Voeg een timestamp en de bron-URL toe voor traceerbaarheid.

Verwachte kosten

OpenAI gpt-4o-mini kost $0.15 per 1M input tokens en $0.60 per 1M output tokens. Voor een typische webpagina van 2000 woorden kost de AI-structurering circa $0.001 per pagina.

Optimalisatie

Gebruik een IF node om paginas die niet zijn gewijzigd since de laatste scrape over te slaan. Sla een hash van de inhoud op in je database en vergelijk bij elke run.

Nieuwsbrief

Meer handleidingen en tips?

Elke week de beste agentic AI inzichten en nieuwe handleidingen in je inbox.

Gratis aanmelden →