Zurück zum Blog

Was ist Web Scraping? Prinzip, Ablauf und Compliance in der Praxis

Web Scraping ist der Prozess, Webinhalte automatisch abzurufen und in strukturierte Daten zu überführen. Dieser Artikel erklärt die Unterschiede zwischen statischen und dynamischen Seiten, die Tool-Auswahl, den vollständigen Umsetzungsprozess sowie die Compliance-Grenzen von robots.txt und personenbezogenen Daten.

Web Scraping ist der Prozess, mit einem Programm Webinhalte abzurufen, aus HTML, API-Antworten oder Browser-Rendering-Ergebnissen die benötigten Felder zu extrahieren und in Tabellen, JSON oder Datenbankeinträge zu organisieren. Häufige Anwendungen sind Preisüberwachung, Aggregation öffentlicher Produktinformationen, Stimmungsanalyse, SEO-Audits, Analyse von Stellenausschreibungen und interne Datenmigration.

Web Scraping ist keine einfache „automatisierte Kopie-und-Einfüge-Funktion“. Ein zuverlässiges Projekt muss mindestens Zugriffsrechte, Seitenstruktur, dynamisches Rendering, Paginierung, Deduplizierung, Ratenbegrenzung, Fehlerwiederholungen, Datenqualität und Datenschutz-Compliance bewältigen. Technisch auf eine Seite zugreifen zu können, bedeutet nicht, dass man berechtigt ist, alle darin enthaltenen Daten zu sammeln, zu speichern oder wiederzuverwenden.

Was ist der Unterschied zwischen Web Scraping und einem Web-Crawler?

Die Begriffe werden oft verwechselt, aber sie haben unterschiedliche Schwerpunkte:

  • Web-Crawler konzentriert sich darauf, URLs zu entdecken und zu durchlaufen, z. B. von einer Startseite aus kontinuierlich Links zu folgen, um neue Seiten zu finden;
  • Web Scraping konzentriert sich darauf, Felder aus einer Zielseite zu extrahieren, z. B. Produktname, Preis, Lagerstatus und Zeitpunkt der letzten Aktualisierung;
  • Ein vollständiges System durchläuft normalerweise zuerst URLs, scrapet dann Seiten und bereinigt und speichert schließlich die Daten.

Suchmaschinen sind ein typisches Crawling- und Verarbeitungssystem. Moderne Seiten benötigen möglicherweise die Ausführung von JavaScript, bevor der vollständige Inhalt sichtbar ist. Kommerzielle Datenerfassung ist normalerweise viel kleiner, aber die grundlegende Pipeline „Seiten entdecken, Inhalte abrufen, Felder parsen, Ergebnisse speichern“ ist ähnlich.

Wie Web Scraping grundsätzlich funktioniert

Eine Scraping-Aufgabe durchläuft normalerweise sechs Phasen.

1. Datenziel definieren

Definieren Sie zuerst die wirklich benötigten Felder, die Aktualisierungshäufigkeit, den Abdeckungsbereich und den Verwendungszweck. Beispielsweise benötigt Preisüberwachung möglicherweise nicht die Namen der Bewerter; ein SEO-Audit benötigt nur Titel, Statuscodes und Canonical-Tags, nicht den gesamten Text jeder Seite.

Je klarer das Ziel, desto einfacher ist es, das Anforderungsvolumen, die Speicherkosten und das Risiko personenbezogener Daten zu kontrollieren.

2. Seite abrufen

Bei statischen Seiten, bei denen der Server vollständiges HTML direkt zurückgibt, reicht normalerweise ein normaler HTTP-Client aus. Bei dynamischen Seiten, die Inhalte mit JavaScript laden oder Klicks und Scrollen erfordern, müssen Sie möglicherweise ein echtes Browser-Automatisierungstool für das Rendering verwenden.

Aber bevor Sie einen Browser einführen, sollten Sie prüfen, ob die Website eine offizielle API, Datenexport, RSS, eine Sitemap oder öffentliche Datensätze anbietet. Diese Kanäle sind normalerweise stabiler und lassen sich leichter an die Nutzungsbedingungen halten.

3. Elemente parsen und lokalisieren

Nachdem Sie das HTML erhalten haben, verwendet das Programm CSS-Selektoren oder XPath, um Inhalte zu lokalisieren. Die Scrapy-Selektoren-Dokumentation erklärt, dass Selektoren Knoten aus HTML extrahieren können und dass Scrapy-Antwortobjekte direkt Schnittstellen wie .css() und .xpath() bereitstellen.

Selektoren sollten auf stabiler Semantik beruhen, z. B. Datenattributen, strukturierten Daten oder einer klaren Container-Hierarchie, und sollten nicht von zufälligen Klassennamen abhängen, die sich bei Neugestaltungen häufig ändern.

4. Bereinigen und normalisieren

Seitentext ist oft mit zusätzlichen Leerzeichen, Währungssymbolen, Einheiten und lokalisierten Formaten vermischt. In der Bereinigungsphase sollte vereinheitlicht werden:

  • Zeichenkodierung und Zeilenumbrüche;
  • Datums-, Zeitzonen- und Zahlenformate;
  • Währungen und Maßeinheiten;
  • relative URLs gegenüber absoluten URLs;
  • fehlende Werte, doppelte Datensätze und Ausreißer.

Rohwert und bereinigter Wert sollten am besten getrennt aufbewahrt werden, damit Streitigkeiten oder Regeländerungen nachvollzogen werden können.

5. Speichern und versionieren

Kleine Datenmengen können in CSV oder Tabellenkalkulationen; laufende Aufgaben sind besser in einer Datenbank oder im Objektspeicher aufgehoben. Neben Geschäftsfeldern sollten Sie auch die Quell-URL, den Scraping-Zeitstempel, den Antwortstatus sowie die Daten- und Parser-Versionen speichern. So können Sie erkennen, ob eine Änderung von der Website, den Parse-Regeln oder einem fehlgeschlagenen Scrape stammt.

6. Überwachen und warten

Websites werden neu gestaltet, Felder verschieben sich, APIs ändern sich. Produktions-Scraping sollte Erfolgsrate, Leerwertrate, Duplikatsrate, Antwortzeit, HTTP-Statuscodes und das Anforderungsvolumen pro Zeiteinheit überwachen. Wenn ein Feld plötzlich völlig leer ist, pausieren Sie die Aufgabe und untersuchen Sie sie, statt Leerwerte über gute historische Daten zu schreiben.

Statische Seiten, dynamische Seiten oder APIs: Was wählen?

Offizielle API oder Export zuerst bevorzugen

Eine offizielle API bietet normalerweise stabile Felder, Paginierung und Berechtigungsmechanismen. Solange Lizenz, Kontingent und Kosten Ihren Anforderungen entsprechen, ist sie meist zuverlässiger als das Parsen von Seiten.

Statisches HTML eignet sich für leichtes Scraping

Wenn Sie die Zieldaten durch Anzeigen des Seitenquellcodes sehen können, reichen ein HTTP-Client und ein HTML-Parser. Das startet schnell und verbraucht wenig Ressourcen und eignet sich für öffentliche Listen, Dokumentation und Inhaltsseiten.

Browser-Automatisierung nur für dynamische Seiten erwägen

Nur wenn Inhalte erst nach Skriptausführung erscheinen oder Sie Klicks, Filterung und Scrollen innerhalb eines autorisierten Umfangs durchführen müssen, erwägen Sie Tools wie Playwright. Die Playwright-BrowserType-Dokumentation zeigt die Automatisierungsschnittstelle zum Starten oder Verbinden eines Browsers.

Browser-Automatisierung verbraucht mehr CPU und Speicher, und Seiten-Selektoren sind anfälliger für Neugestaltungen. Machen Sie sie daher nicht zum Standard für jedes Projekt und verwenden Sie sie niemals, um Login-Berechtigungen, CAPTCHAs oder Zugriffskontrollen zu umgehen.

Wie starte ich ein Web-Scraping-Projekt?

Schritt 1: Berechtigungen und alternative Kanäle bestätigen

Prüfen Sie die Nutzungsbedingungen, API-Bedingungen, robots.txt, Urheberrechtshinweise und Datenlizenzen der Website. Wenn das Projekt Inhalte hinter Login, kostenpflichtige Inhalte, personenbezogene Daten oder großflächige kommerzielle Nutzung betrifft, sollte die Rechtsabteilung oder ein Datenschutzbeauftragter die Grundlage bestätigen.

robots.txt ist der Standardmechanismus, mit dem eine Website automatisierten Clients Scraping-Regeln mitteilt. RFC 9309 stellt klar, dass es von Diensteigentümern verwendet wird, um zu steuern, wie Crawler auf Ressourcen zugreifen, aber es ist kein Zugriffsautorisierungsmechanismus. Mit anderen Worten: Das Zulassen von Scraping erteilt nicht automatisch Urheberrechte oder Rechte zur Verarbeitung personenbezogener Daten, und eine Sperrregel sollte nicht als ein „technisch zu umgehendes“ Hindernis behandelt werden.

Schritt 2: Seitenstruktur stichprobenartig prüfen

Wählen Sie 10–20 Seiten, die unterschiedliche Paginierung, Kategorien und Randfälle abdecken, um zu bestätigen, dass die Felder immer an derselben Stelle stehen. Prüfen Sie insbesondere Fälle ohne Preis, mit fehlenden Bildern, ausverkauften Artikeln, mehreren Varianten, mehrsprachigen Inhalten und abgelaufenen Sitzungen.

Schritt 3: Datenstruktur entwerfen

Definieren Sie für jedes Feld einen Namen, Typ, ob es erforderlich ist, eine Bereinigungsregel und einen eindeutigen Schlüssel. Produktdaten könnten beispielsweise Quell-URL, Plattform-Produkt-ID, Titel, aktueller Preis, Währung, Lagerstatus und Erfassungszeit umfassen.

Schritt 4: Zuerst einen kleinen Prototyp bauen

Verifizieren Sie mit wenigen Seiten Selektoren, Paginierung, Kodierung, Deduplizierung und Fehlerbehandlung. Führen Sie die gesamte Website nicht aus, bevor Ihre Selektoren stabil sind.

Schritt 5: Freundliches Raten-Limit hinzufügen

Setzen Sie ein angemessenes Anforderungsintervall, eine Parallelitätsgrenze, einen Timeout und exponentielles Backoff; verlangsamen oder pausieren Sie aktiv bei 429 Too Many Requests oder anhaltendem 5xx. Speichern Sie bereits abgerufene, selten ändernde Seiten zwischen, um doppelte Anforderungen zu vermeiden. Wenn Sie inkrementell nach Aktualisierungszeit scrapen können, ziehen Sie nicht jeden Tag alles vollständig erneut ab.

Schritt 6: Mit Überwachung und Stoppbedingungen live gehen

Setzen Sie Stoppbedingungen für abnormale Zustände, z. B. plötzlich auftretende CAPTCHAs, abgelaufene Logins, stark steigende Leerwertraten, Strukturänderungen oder zunehmende Serverfehler. Ein automatisiertes System sollte bei Unsicherheit anhalten und auf menschliche Bestätigung warten, statt endlos zu wiederholen.

Wie sollte man robots.txt lesen?

robots.txt befindet sich normalerweise unter /robots.txt im Stammverzeichnis. Regeln sind nach User-Agent gruppiert und beschreiben Pfade mit allow und disallow. Der Google-Erklärer zu robots.txt betont außerdem, dass Regeln nur für den entsprechenden Host, das Protokoll und den Port gelten und dass Pfade groß-/kleinschreibungsabhängig sind.

Beachten Sie:

  • robots.txt ist keine Passwortwand und sollte nicht zum Verstecken geheimer URLs verwendet werden;
  • es drückt hauptsächlich Crawling-Präferenzen aus und ist nicht gleichbedeutend mit Inhaltsautorisierung;
  • die spezifischen Bedingungen, Verträge, geistigen Eigentumsrechte und Datenschutzpflichten der Website müssen separat bewertet werden;
  • auch ohne robots.txt bedeutet das nicht, dass man mit unbegrenzter Parallelität scrapen oder irgendetwas sammeln darf;
  • ein Projekt sollte einen identifizierbaren User-Agent und Kontaktdaten verwenden, statt sich als normaler Benutzer zu tarnen, um Governance zu umgehen.

Welche Compliance-Risiken hat Web Scraping?

Personenbezogene Daten

Öffentlich sichtbar bedeutet nicht, dass es unbegrenzt verarbeitet werden darf. Wenn Daten eine Person direkt oder indirekt identifizieren können, kann der Sammler weiterhin Pflichten zu Information, Rechtsgrundlage, Aufbewahrungsfristen, Sicherheit und Rechtebeantwortung haben.

Die Erklärung der Europäischen Kommission zu GDPR-Grundsätzen listet Grundsätze wie Rechtmäßigkeit, Fairness und Transparenz, Zweckbindung, Datenminimierung, Speicherbegrenzung, Richtigkeit, Sicherheit und Rechenschaftspflicht auf. Datenprojekte, die auf Einzelpersonen in der EU abzielen, sollten nur die für einen angegebenen Zweck notwendigen Felder sammeln und Lösch- oder Überprüfungsfristen festlegen.

Urheberrechte und Datenbankrechte

Fakten und der Ausdruck einer Seite können unterschiedlich geschützt sein; das Kopieren großer Mengen von Text, Bildern, Kommentaren oder Datenbankinhalten birgt ein höheres Risiko als die Aufzeichnung nur der notwendigen Faktenfelder. Ob Sie veröffentlichen, Modelle trainieren oder kommerziell weiterverkaufen dürfen, hängt von Gerichtsbarkeit, Lizenz und Verwendungszweck ab.

Verträge und Zugriffskontrolle

Website-Bedingungen können automatisierten Zugriff, Datenwiederverwendung oder Kontofreigabe einschränken. Sie dürfen Login, Paywalls, CAPTCHAs, Ratenlimits oder andere technische Zugriffskontrollen nicht umgehen. Wenn ein Projekt eingeschränkte Daten beschaffen muss, holen Sie zuerst eine ausdrückliche Genehmigung ein.

Auswirkung auf den Dienst der Website

Übermäßige Parallelität erhöht die Kosten des Gegenübers und beeinträchtigt normale Nutzer. Ratenbegrenzung, Caching, inkrementelle Updates, gestaffelte Zeitpläne und klare Stoppbedingungen sind sowohl Qualitätsanforderungen als auch grundlegende Service-Etikette.

Wie hält man Browser-Automatisierungsaufgaben unter Kontrolle?

Wenn Scraping wirklich Browser-Rendering erfordert oder mehrere Konten, mehrere Umgebungen und Teamzusammenarbeit umfasst, werden Rückverfolgbarkeit und Berechtigungskontrolle entscheidend. Sie können diese Browser-Operationen in prüfbare, verwaltbare Workflows organisieren:

  • Browser-Umgebungen nach Kunde oder Projekt isolieren, um das Vermischen von Cookies und Sitzungen zu reduzieren;
  • ausführenden Mitgliedern nur die benötigten Berechtigungen geben, statt Kontopasswörter zu teilen;
  • mit Operationslogs aufzeichnen, wer welche Aufgabe wann gestartet hat;
  • für Seiten, die gerendert werden müssen, kleine Stapel-Warteschlangen und Parallelitätsgrenzen setzen, um die Anforderungsintensität zu kontrollieren;
  • Selektoren in einer Testumgebung validieren, bevor Aufgaben im autorisierten Umfang schrittweise erweitert werden;
  • bei Integration in interne Planung Timeouts, Ratenlimits und manuelle Stoppmechanismen beibehalten.

Beachten Sie, dass kein Browser-Automatisierungstool unbefugte Datensammlung in eine konforme Aktivität verwandeln kann und es nicht zum Umgehen von CAPTCHAs, Sperren, Paywalls oder Plattformlimits verwendet werden sollte. Bestätigen Sie vor der Automatisierung Datenquelle, Berechtigungen und Verwendungszweck. Wenn Sie autorisierte Browser-Workflows verwalten müssen, erwägen Sie ein geeignetes Browser-Automatisierungs-Verwaltungstool, um eine Testumgebung einzurichten.

Häufig gestellte Fragen

Es gibt keine einheitliche Antwort, die auf alle Länder, Websites und Datentypen zutrifft. Sie müssen Website-Bedingungen, Zugriffsmethoden, Urheberrecht, Datenbankrechte, personenbezogene Daten, kommerziellen Wettbewerb und lokale Gesetze gemeinsam berücksichtigen. Bei Hochrisiko- oder Großprojekten konsultieren Sie einen professionellen Rechtsberater.

Darf ich frei scrapen, wenn robots.txt es erlaubt?

Nein. robots.txt ist eine Scraping-Regel, keine Urheberrechtslizenz, kein Vertragserlass und keine Genehmigung zur Verarbeitung personenbezogener Daten.

Soll ich statische Seiten scrapen oder einen Headless-Browser verwenden?

Bevorzugen Sie den leichten Ansatz, wenn Sie Daten über eine offizielle API oder statisches HTML erhalten können; verwenden Sie Browser-Automatisierung nur, wenn der Zielinhalt wirklich von JavaScript oder autorisierter Interaktion abhängt.

Wie vermeide ich schmutzige Daten durch Neugestaltungen?

Speichern Sie Quelle und Zeitstempel, setzen Sie Feldvalidierung und Leerwert-Warnungen, versionieren Sie Ihre Parse-Regeln und stoppen Sie bei Anomalien das Schreiben, statt historische Daten zu überschreiben.

Zusammenfassung

Der Kern von Web Scraping ist nicht „die Seite abzuholen“, sondern Webinformationen auf kontrollierte, verifizierbare und wartbare Weise in strukturierte Daten zu verwandeln. Ein ausgereifter Workflow priorisiert offizielle Schnittstellen, respektiert robots.txt und Nutzungsbedingungen, kontrolliert die Anforderungsintensität, minimiert personenbezogene Daten und entwirft Stoppmechanismen für Strukturänderungen und abnormale Zustände.

Wenn Berechtigungen, Datenmodellierung und Überwachung alle vor der Skalierung kommen, kann Web Scraping wirklich zu stabiler Dateninfrastruktur werden, statt zu einem fragilen Einwegskript.