
Musstest du schon einmal Daten von einer Webseite abrufen, die über keine API verfügt? Vielleicht möchtest du die Preise deiner Konkurrenten verfolgen, Leads aus einem Branchenverzeichnis sammeln oder Artikelinhalte zur Analyse abrufen. Das manuelle Kopieren und Einfügen dieser Informationen ist langsam, mühsam und fehleranfällig. Hier kommt n8n Web Scraping ins Spiel. Mit n8n kannst du unzählige Stunden manueller Arbeit sparen, indem du leistungsstarke, automatisierte Workflows erstellst, mit denen du die benötigten Daten von jeder Webseite extrahierst.
Dieser Guide zeigt dir, wie du mit n8n scrapen kannst, beginnend mit den absoluten Grundlagen bis hin zu fortgeschritteneren Techniken. Wir werden alles abdecken, von einfachem HTML-Scraping mit n8n auf statischen Seiten bis hin zum Umgang mit dynamischen, JavaScript-lastigen Seiten. Am Ende verfügst du über die Fähigkeiten, jede Webseite in eine strukturierte Datenquelle umzuwandeln und eine vollständige n8n-Data-Scraping-Pipeline aufzubauen.
Die Grundlagen des Web-Scraping mit n8n: Eine Einführung in Core-Knoten
Im Kern folgt das gesamte n8n-Web-Scraping einem einfachen, zweistufigen Prozess:
- Fetch: Du stellst wie ein Webbrowser eine Anfrage an den Server einer Webseite und erhältst den rohen HTML-Code der Seite zurück.
- Parse: Du durchsuchst diesen HTML-Code, um die für dich interessanten Informationen zu finden und zu extrahieren, z. B. einen Produktnamen, einen Preis oder einen Artikeltitel.
n8n stellt zwei grundlegende, vorhandene Knoten („Nodes“) bereit, die diesen Prozess perfekt abwickeln. Es ist wichtig zu verstehen, was jeder einzelne Knoten tut.

Der erste ist der n8n-HTTP-Request-Knoten. Dies ist dein Tool zum Abrufen der Webseite. Du gibst ihm eine URL und es gibt dir den vollständigen HTML-Quellcode für diese Seite zurück. Die Seite wird nicht gerendert und kein JavaScript ausgeführt. Es erfasst lediglich den Rohcode, in dem genau das enthalten ist, was wir für die häufigste und effizienteste Art des Scrapings benötigen.
Der zweite ist der HTML-Knoten. Dies ist dein Parsing-Tool. Du fütterst ihn mit dem Roh-HTML aus dem vorherigen Schritt und kannst zur Lokalisation und Extraktion von spezifischen Daten CSS-Selektoren verwenden – dieselben Selektoren, die zur Gestaltung von Webseiten verwendet werden. Dieser zweistufige Ansatz ist unglaublich flexibel, da er den Vorgang des Abrufens vom Vorgang des Parsens trennt und so das Erstellen und Debuggen deiner Arbeitsabläufe erleichtert.
Einfaches Scraping: So extrahierst du HTML-Inhalte mit dem HTTP-Request-Knoten
Lass uns ein praktisches Beispiel für das Scrapen mit n8n durchgehen. Unser Ziel wird es sein, eine einfache n8n-Data-Scraping-Aufgabe durchzuführen: das Extrahieren der Titel der neuesten Blog-Beiträge von einer Webseite.
Schritt 1: Rufe die Seite mit dem HTTP-Request-Knoten ab
Füge zunächst einen n8n-HTTP-Request-Knoten zu deinem Workflow hinzu.
- Im URL-Feld gibst du die vollständige URL der Seite ein, die du durchsuchen möchtest.
- Belasse die Method als
GET. - Führe den Knoten aus (Falls es zu Problemen kommt: Lösungen für den Fehler
403 Forbiddenfindest du weiter unten).
Schritt 2: Analysiere die Titel mit dem HTML-Knoten
Sobald du den HTML-Code hast, verbinde einen HTML-Knoten mit der Ausgabe des HTTP-Request-Knotens. Hier wenden wir das n8n-HTML-Scraping an.
- Gib als Operation „Extract HTML Content“ ein.
- In der Extraction Values-Tabelle müssen wir dem Knoten mitteilen, wonach er suchen soll.
- Als Key gibst du type
titleein. Dies ist nur ein Label für die Daten, die wir extrahieren. - Gib für den CSS Selector den spezifischen Selektor ein, der auf das gewünschte Element abzielt. Du findest ihn, indem du in deinem Browser mit der rechten Maustaste auf das Element klickst und „Inspect“ wählst. Klicke im sich öffnenden Entwicklerfenster mit der rechten Maustaste auf das hervorgehobene HTML-Element und wähle Copy >Copy selector. Dadurch wird der genaue CSS-Selektor in deine Zwischenablage kopiert, den du dann direkt in den n8n-HTML-Knoten einfügen kannst.
- Wähle als Return Value „Text“ aus.
- Als Key gibst du type
- Führe den Knoten aus. Die Ausgabe ist eine saubere Liste des von dir extrahierten Textinhalts.
Fehlerbehebung bei einem 403 Forbidden Fehler
Mach dir keine Sorgen, wenn du direkt einen 403 Forbidden-Fehler in Schritt 1 erhältst. Das kommt sehr häufig vor. Es bedeutet, dass der Server der Webseite deine Anfrage als von einem automatisierten Skript stammend erkannt hat (was es auch ist) und sie blockiert hat. Der häufigste Grund hierfür ist ein fehlender User-Agent.
Ein User-Agent ist eine Zeichenfolge, die dem Server mitteilt, welche Art von Browser die Anfrage stellt. Standardmäßig sendet der HTTP-Request-Knoten von n8n eine technische Anfrage, die leicht zu erkennen ist.
Wie man es behebt (erster Schritt): Du musst dafür sorgen, dass deine Anfrage so aussieht, als käme sie von einem echten Webbrowser.
- Suche im HTTP-Request-Knoten den Header-Abschnitt.
- Klicke auf Add Header.
- Gib im Name-Feld
User-Agentein. - Füge im Wert-Feld eine gängige Browser-User-Agent-Zeichenfolge ein. Eine sichere und häufig verwendete ist:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML wie Gecko) Chrome/108.0.0.0 Safari/537.36 - Führe den Knoten erneut aus. In den meisten Fällen sollte das Hinzufügen dieses Headers den 403-Fehler beheben und dir ermöglichen, den HTML-Code der Seite erfolgreich abzurufen.
Wenn der User-Agent-Fix nicht funktioniert, ist die IP-Adresse deines Servers ein weiterer häufiger Grund für die Blockade. Du kannst die Konfiguration des HTTP-Request-Knotens zur Verwendung eines Proxyservers abändern, indem du eine Proxy-Option zum Knoten hinzufügst. Dadurch wird deine Anfrage über eine andere IP-Adresse weitergeleitet, wodurch häufig einfache IP-basierte Blockaden umgangen werden können.
Und was, wenn das auch nicht funktioniert? (Nächster Schritt):
Wenn du immer noch einen 403-Fehler erhältst, verwendet die Webseite wahrscheinlich einen fortschrittlicheren Bot-Erkennungsdienst (wie Cloudflare), der Anfragen von bekannten IP-Adressen von Rechenzentren, einschließlich der Cloud-Server von n8n, blockiert. Der User-Agent ist korrekt, aber die Quelle der Anfrage wird markiert.
In diesem Szenario ist es am besten, mit den Verfahren im Abschnitt „Fortgeschrittenes Scraping“ später in diesem Artikel fortzufahren. Du musst einen Residential-Proxy oder einen speziellen Scraping-API-Dienst verwenden, der deine Anfrage über einen echten Browser an eine private IP-Adresse weiterleitet, sodass sie nicht von einem normalen Benutzer zu unterscheiden ist.
Bereinigen und Formatieren deiner Scraping-Daten
Oftmals sind die von dir extrahierten Daten nicht vollkommen bereinigt. Es enthält möglicherweise zusätzliche Leerzeichen oder unerwünschte Zeichen oder muss in ein anderes Format konvertiert werden. Du kannst dies direkt in n8n bearbeiten. Für eine einfache Bereinigung kannst du spezielle Ausdrücke verwenden. Um beispielsweise führende/nachgestellte Leerzeichen aus einem Titel zu entfernen, kannst du {{ $json.title.trim() }} verwenden.
Für komplexere Transformationen ist der Code-Knoten dein bester Freund. Mit diesem Knoten kannst du einen kleinen JavaScript-Ausschnitt schreiben, um deine Daten zu verarbeiten. Du kannst damit Währungssymbole aus einem Preis entfernen, ein Datumsformat konvertieren oder einen vollständigen Namen in einen Vor- und Nachnamen aufteilen. Durch die Durchführung dieses Bereinigungsschritts wird sichergestellt, dass die anschließend gespeicherten Daten einheitlich aufbereitet sind und analysiert werden können.
n8n Fortgeschrittenes Scraping: Umgang mit dynamischen Seiten mit dem ultimativen Scraper-Workflow
Die einfache HTTP-Request-Methode ist schnell und effizient, stößt jedoch bei modernen Webseiten an ihre Grenzen. Wenn eine Website zum Laden von Inhalten auf JavaScript angewiesen ist oder durch Dienste wie Cloudflare geschützt ist, erhältst du häufig eine Fehlermeldung oder eine leere Seite. Für diese Situationen benötigst du einen leistungsfähigeren Ansatz für das erweiterte n8n-Scraping.
Während n8n über keinen nativen n8n-Selenium-Knoten zur direkten Steuerung eines Browsers verfügt, hat die Community leistungsstarke Knoten erstellt, die dedizierte Scraping-Dienste integrieren. Diese Dienste übernehmen die gesamte komplexe Backend-Arbeit – wie das Ausführen echter Browser, das Rotieren von Proxys und das Lösen von CAPTCHAs – und stellen dir einen einfachen Knoten zur Verfügung, den du in deinem Workflow verwenden kannst. Dies ist oft die beste und einfachste Möglichkeit, schwierige Scraping-Aufgaben zu bewältigen.
Der beste Weg: Verwendung eines dedizierten Community-Knotens für Scraping
Für die meisten Benutzer besteht die effektivste Möglichkeit zum Scrapen einer dynamischen oder geschützten Website darin, einen Community-Knoten zu verwenden, der mit Diensten wie ScrapeNinja oder Firecrawl integriert werden kann. Hierbei handelt es sich nicht nur um einfache Browserdienste, sondern um spezielle Scraping-APIs, die darauf ausgelegt sind, Anti-Bot-Maßnahmen zu umgehen.
Ein tolles Beispiel für diese Methode ist die Verwendung eines Knotens wie ScrapeNinja:
- Installiere den Community-Knoten: Gehe in deiner n8n-Instanz zu Einstellungen > Community-Knoten und installiere den Knoten für den von dir gewählten Dienst (z. B. ).
- Füge den Knoten zu deinem Workflow hinzu: Nach der Installation findest du einen neuen ScrapeNinja-Knoten in deinem Knotenpanel. Füge ihn deinem Workflow hinzu.
- Konfiguriere den Scrape:
- Daten extrahieren: Diese Dienste umfassen häufig integrierte Parser. Du kannst CSS-Selektoren direkt im Knoten bereitstellen, um die benötigten Daten zu extrahieren, oder du kannst den vollständigen, gerenderten HTML-Code an einen Standard-n8n-HTML-Knoten zum Parsen weiterreichen.
Die Verwendung eines dedizierten Community-Knotens wie diesem ist der empfohlene Ansatz für das Scraping mit n8n auf schwierigen Webseiten, da auf diese Weise ein großer Teil der Komplexität beseitigt werden kann. Der Dienst übernimmt für dich die Browserautomatisierung, Proxy-Rotation und Anti-Bot-Herausforderungen, sodass du dich auf die Daten konzentrieren kannst. Dieser Workflow zuverlässiger und einfacher zu warten als eine Browser-Integration selbst zu verwalten.
Von Daten zu Erkenntnissen: Verwendung von KI für die Post-Scraping-Analyse
Das Scrapen von Daten ist nur der erste Schritt. Der wahre Wert ergibt sich aus dem, was du damit machst. Nach dem n8n-HTML-Scraping bleibt häufig roher, unstrukturierter Text zurück. Hier kann KI deinen Workflow in etwas wirklich Leistungsfähiges verwandeln.
Durch die Verbindung eines KI-Knotens wie OpenAI oder Google Gemini im Anschluss an deinen HTML-Knoten kannst du den erhaltenen Inhalt sofort bereinigen, strukturieren und analysieren. Stell dir zum Beispiel vor, du hast Kundenrezensionen für ein Produkt gesammelt. Der Rohtext ist chaotisch und vielseitig. Du kannst jede Bewertung mit einer Eingabe wie der folgenden an einen KI-Knoten übergeben.
„Extrahiere aus dem folgenden Bewertungstext die Stimmung (positiv, negativ oder neutral), identifiziere die genannten Hauptmerkmale und weise eine Bewertung von 1 bis 5 zu. Antworte im JSON-Format.“
Die KI gibt ein sauberes, strukturiertes JSON-Objekt zurück, das etwa so aussieht:
{
"Stimmung": "Positiv",
"Erwähnte Hauptmerkmale": ["Akkulaufzeit", "Bildschirmqualität"],
"Bewertung": 5
}Anschließend kannst du diese strukturierten Daten mithilfe von Knoten wie Postgres oder Google Sheets direkt in eine Datenbank oder ein Spreadsheet einfügen. Dadurch wird dein Scraping-Workflow zu einer leistungsstarken n8n-Datenpipeline, die unübersichtliche Webinhalte automatisch in wertvolle, analysebereite Erkenntnisse umwandelt.
Praktischer Workflow: n8n-Automatisierung der Lead-Generierung
Lass uns diese Konzepte zusammenfassen, um einen praktischen Workflow für die n8n-Lead-Generierung zu erstellen. Ziel ist es, potenzielle Kunden über eine Verzeichnis-Webseite zu finden und sie einer Lead-Liste hinzuzufügen. Dadurch wird eine Aufgabe automatisiert, die manuell Stunden dauern würde.
- Verzeichnis durchsuchen: Beginne damit, ein lokales Branchenverzeichnis zu scrapen (z. B. eine Liste von Marketingagenturen in einer bestimmten Stadt). Verwende den HTTP-Request oder die Scraping-Knoten von Drittanbietern und HTML-Knoten, um den Firmennamen und die Webseiten-URL für jeden Eintrag zu extrahieren.
- Kontakt-E-Mail finden: Verwende für jede von dir durchsuchte Unternehmenswebseite einen Dienst wie Hunter.io, um eine öffentlich aufgeführte E-Mail-Adresse zu finden. n8n verfügt über einen dedizierten Hunter-Knoten, den du für diesen Zweck verwenden kannst.
- Filtern und Anreichern: Füge einen IF-Knoten hinzu, um alle Unternehmen herauszufiltern, für die du keine E-Mail finden konntest. Für die gültigen Leads kannst du sogar einen OpenAI-Knoten verwenden, um ihre Webseite zu besuchen (unter Verwendung der Scraping-Technik aus Schritt 1) und eine personalisierte Eröffnungszeile für eine E-Mail entwerfen, die auf Informationen ihrer „Über uns“-Seite basiert.
- Zur Lead-Liste hinzufügen: Verwende den Google Sheets– oder Airtable-Knoten, um den Firmennamen, die Webseite und die Kontakt-E-Mail-Adresse an deine Master-Lead-Liste anzuhängen.
Dieser Workflow automatisiert den gesamten Top-of-Funnel-Prozess, erspart deinem Vertriebsteam Stunden der manuellen Akquise und ermöglicht es ihm, sich auf den Aufbau von Beziehungen zu konzentrieren.
n8n-Skalierung: Aufbau robuster und effizienter Web-Scraping-Workflows
Wenn dein n8n-Web-Scraping-Projekt von wenigen Seiten auf Hunderte oder Tausende anwächst, muss sich dein Workflow-Design weiterentwickeln. Ein einfacher, linearer Workflow führt schnell zu Leistungsengpässen oder wird blockiert. Für eine erfolgreiche n8n-Skalierung musst du modulare und resiliente Workflows erstellen, welche die von dir ausgewerteten Server respektvoll behandeln.
Verwalte Parallelität, um Überlastung zu vermeiden
Ein häufiger Fehler besteht darin, eine Liste mit 1.000 URLs abzurufen und diese sofort an einen HTTP-Request-Knoten zu übergeben. Standardmäßig versucht n8n, alle 1.000 Anfragen parallel auszuführen, was zum Absturz deiner n8n-Instanz führen kann und mit ziemlicher Sicherheit zur Blockierung deiner IP-Adresse führt.
Der richtige Ansatz besteht darin, die Parallelität zu kontrollieren.
- Loop-Over-Items-Knoten verwenden: Füge vor deinem HTTP-Request-Knoten einen Loop-Over-Items-Knoten ein. Konfiguriere ihn auf eine kleine Ausführungsgröße, z. B. 5 oder 10. Dadurch wird sichergestellt, dass n8n immer nur eine kleine Anzahl von URLs gleichzeitig bearbeitet.
- Wait-Knoten hinzufügen: Nachdem jede Ausführung verarbeitet wurde, kannst du einen Wait-Knoten hinzufügen, um den Workflow für einige Sekunden anzuhalten. Diese Drosselung ist nützlich, um Limitüberschreitungen zu vermeiden und den Eindruck eines natürlicheren Benutzers zu erwecken.
Große Workflows in Sub-Workflows unterteilen
Ein einzelner, umfangreicher Workflow, der alles erledigt (URLs abruft, Seiten durchsucht, Daten bereinigt, in einer Datenbank speichert) ist schwer zu debuggen und zu warten. Eine viel bessere Vorgehensweise für komplexe Scraping-Aufgaben besteht darin, kleinere, modulare Sub-Workflows zu erstellen.
- Master Workflow: Ein „Master“ Workflow, der den Gesamtprozess orchestriert. Seine Aufgabe besteht lediglich darin, die Liste der URLs abzurufen und diese dann jeweils an einen Sub-Workflow zu übergeben.
- Sub-Workflow Scraping: Dieser Workflow wird durch den „Master“ mit einem Execute Sub-Workflow-Knoten ausgelöst. Es nimmt eine einzelne URL als Eingabe, führt den Scraping durch, bereinigt die Daten und gibt dann das strukturierte Ergebnis zurück.
Dieser modulare Aufbau erleichtert die Fehlerbehebung bei n8n erheblich. Wenn ein bestimmter Teil des Prozesses fehlschlägt, musst du nur diesen einen kleinen, fokussierten Workflow debuggen.
Implementiere eine robuste Fehlerbehandlung
Bei jeder groß angelegten Scraping-Aufgabe sind Misserfolge unvermeidlich. Möglicherweise ist eine Webseite nicht verfügbar, ihr Layout ändert sich oder dein Proxy fällt aus. Dein Workflow muss damit umgehen können, ohne dass er ganz zum Stillstand kommt.
- Verwende Continue-on-Fail: Für jeden Knoten, der ausfallen kann (wie der HTTP-Request oder der HTML-Knoten), gehe zu seinem Einstellungen-Tab und wähle auf der Registerkarte „Bei Fehler“ die Option „Weiter (mit Fehlerausgabe)“ aus.
- Fehlerpfad erstellen: Dadurch wird eine zweite „Fehler“-Ausgabe auf dem Knoten erzeugt. Verbinde dies mit einem separaten Zweig deines Workflows, der den Fehler protokolliert. Du kannst es beispielsweise mit einem Google Sheets-Knoten verbinden, der so konfiguriert ist, eine neue Zeile an ein Fehlerprotokoll-Dokument anzuhängen und dabei die fehlgeschlagene URL sowie die spezifische Fehlermeldung abspeichert. Auf diese Weise kannst du fehlerhafte Elemente später überprüfen und erneut verarbeiten.
Durch die Übernahme dieser Skalierungspraktiken kannst du n8n-Web-Scraping-Workflows erstellen, die nicht nur leistungsstark, sondern auch stabil, effizient und einfach zu verwalten sind, wenn dein Datenbedarf wächst.
n8n Web-Scraping FAQ
- Ist Web-Scraping legal?
Es handelt sich um eine rechtliche Grauzone. Um auf dem rechten Weg zu bleiben, überprüfe immer dierobots.txt-Datei der Webseite, überlaste niemals einen Server mit zu vielen Anfragen und vermeide das Scrapen persönlicher Daten oder urheberrechtlich geschützter Inhalte. Sei im Zweifelsfall besonders vorsichtig. - Wie gehe ich mit Webseiten um, die eine Anmeldung erfordern?
Wenn Webseiten eine Anmeldung erfordern, musst du eine Session verwalten. Du kannst dies tun, indem du dich zunächst mit deinem Browser anmeldest und dessen Entwicklertools (normalerweise unter der Registerkarte „Netzwerk“ oder „Anwendung“) verwendest, um den Sitzungscookie zu finden. Anschließend kannst du diesen Cookie-Wert kopieren und als Header in den Einstellungen deines HTTP-Request Knotens hinzufügen. Dadurch sehen deine Anfragen so aus, als kämen sie von deiner angemeldeten Browsersitzung. - Was passiert, wenn sich das Layout der Webseite ändert?
Dies ist die größte Herausforderung und eine unvermeidliche Realität beim Web-Scraping. Wenn eine Webseite ihre Seiten neu gestaltet, werden deine CSS-Selektoren wahrscheinlich unbrauchbar und dein Workflow wird fehlschlagen. Die einzige Lösung besteht darin, zu deinem HTML-Knoten zurückzukehren und die Selektoren an das neue Layout anzupassen. Für die Erstellung robuster Scraper muss man in Kauf nehmen, dass sie für die Gewährleistung eines reibungslosen Betriebs gelegentlich gewartet werden müssen.