Skip to main content
Ein Web-Scraper ist kein einzelnes Element, sondern eine Pipeline. Ob Sie ihn in Python schreiben, selbst einen Headless-Browser steuern oder visuell in einem No-Code-Tool erstellen: Dieselben Phasen laufen in derselben Reihenfolge ab. Wer sie kennt, erkennt leichter, wo ein Scraper ausfällt, wo er langsamer wird und welche Technik welches Problem behebt.
1

Seite abrufen

Eine HTTP-Anfrage senden und HTML empfangen.
2

Seite rendern

Das JavaScript der Seite in einem echten Browser ausführen.
3

Daten finden

Elemente mit XPath oder CSS-Selektoren bestimmen.
4

Extrahieren und verfeinern

Werte auslesen und mit regulären Ausdrücken bereinigen.
5

Durch die Website navigieren

Paginierung und Anmeldesperren bewältigen.
6

Ausgabe speichern

Als CSV, JSON, in einer Datenbank oder über eine nachgelagerte API.
Die ersten fünf Phasen laufen auf jeder Seite der Reihe nach ab. Navigieren führt für die nächste Seite zurück zu Abrufen, und die gesamte Schleife läuft in großem Maßstab – in der Cloud, hinter rotierenden Proxies und trotz CAPTCHAs.

Seite abrufen

Alles beginnt mit einer Anfrage. Der Scraper sendet eine HTTP-Anfrage an eine URL und erhält eine Antwort – meist HTML, manchmal JSON. Bei einfachen serverseitig gerenderten Seiten liefert dieser Schritt alles Nötige. Allerdings ist die Antwort nur die anfängliche Nutzlast des Servers; bei vielen modernen Websites ist das kaum mehr als eine leere Hülle.

Seite rendern

Erstellt eine Website ihre Inhalte mit JavaScript, stehen die gewünschten Daten nicht im ursprünglichen HTML, sondern erscheinen erst nach Ausführung der Skripte. Beim Rendern werden diese Skripte in einem echten Browser ausgeführt, damit der vollständige Inhalt sichtbar wird. Die hier verwendete Browser-Laufzeit bestimmt, wie originalgetreu die Seite geladen wird und wie viel Arbeitsspeicher und Zeit dies kostet. Sie bildet den Kern beim Scraping JavaScript-gerenderter Seiten.

Daten finden

Nach dem vollständigen Laden muss der Scraper die gewünschten Bestandteile bestimmen – etwa einen Preis, einen Titel oder eine Tabellenzeile. Dazu dienen XPath oder CSS-Selektoren, die beschreiben, wo ein Element in der Seitenstruktur liegt. Gute Selektoren entscheiden darüber, ob ein Scraper kleinere Layoutänderungen übersteht oder bei jeder Aktualisierung der Website ausfällt.

Extrahieren und verfeinern

Das Auffinden eines Elements liefert seinen Rohinhalt. Die Extraktion liest den Wert aus, die Verfeinerung bereinigt ihn. Ein ausgelesener Preis könnte beispielsweise als "$1,299.00 USD" vorliegen, obwohl Sie nur die Zahl benötigen. Reguläre Ausdrücke und Nachbearbeitungsregeln entfernen, teilen und formatieren Rohtext in die strukturierten Felder um, die tatsächlich gespeichert werden sollen.

Durch die Website navigieren

Die meisten Datensätze umfassen mehrere Seiten. Der Scraper muss die Paginierung durchlaufen – Links zur nächsten Seite, „Mehr laden“-Schaltflächen oder unendliches Scrollen –, um jeden Datensatz zu erreichen. Manche Inhalte liegen außerdem hinter Anmeldesperren, die der Scraper zunächst authentifiziert überwinden muss.

Im großen Maßstab ausführen

Ein Scraper, der einmal auf Ihrem Laptop funktioniert, muss auch Tausende Läufe bewältigen. Die Ausführung in der Cloud hält Aufgaben am Laufen, ohne Ihren Rechner zu belegen. Rotierende Proxies verteilen Anfragen auf viele IP-Adressen, damit eine Website sie nicht begrenzt oder blockiert. CAPTCHAs und Anti-Bot-Dienste sind die Hindernisse, die in dieser Phase bewältigt werden.

Ausgabe speichern

Schließlich landen die extrahierten Daten an einem nutzbaren Ort – in einer CSV- oder Excel-Datei, einem JSON-Export, einer Datenbank oder einer nachgelagerten API. Erst diese Phase macht aus einem Scraping-Lauf einen Datensatz.

Die Rolle von Octoparse

Bei einem selbst programmierten Scraper verbinden Sie alle Phasen selbst: Anfragebibliothek, Browser-Treiber, Selektor-Engine, Bereinigungscode, Paginierungslogik, Proxy-Verwaltung und Export. Octoparse bündelt die gesamte Pipeline in einem visuellen Workflow. Sie legen Selektoren per Point-and-Click fest; Rendering, Paginierung, Proxy-Rotation, Cloud-Extraktion und Export sind integriert und werden konfiguriert statt programmiert. Die Phasen bleiben gleich. Sie beschreiben jedoch, was erfasst werden soll, statt technisch umzusetzen, wie jede Phase abläuft.