Zum Inhalt springen
Glossar

Web Scraping liest eine Seite und behält nur das Wesentliche

Ein Programm ruft eine Seite ab, interpretiert sie und macht aus dem benötigten Teil eine Zeile in einer Tabelle. Alles Schwierige daran folgt daraus, dass die Seite für Menschen gebaut wurde.

Vier Fragen bestimmen den Aufwand

Der Aufwand liegt fast nie im Parsen, sondern in diesen vier Punkten, ungefähr in dieser Reihenfolge.

Existiert der Inhalt vor der JavaScript-Ausführung?

Liefert der Server die Daten bereits im ersten HTML-Dokument, genügt ein HTTP-Client und die Aufgabe dauert Minuten. Baut sich die Seite erst im Client auf, brauchen Sie eine Browser-Engine und die Kosten steigen um eine Größenordnung. Prüfen Sie die Rohantwort, bevor Sie annehmen.

Liegt der Inhalt hinter einer Anmeldung?

Angemeldete Inhalte verändern die Aufgabe grundlegend. Sie lesen keine öffentliche Seite mehr, sondern bedienen ein Konto samt der dafür geltenden Bedingungen. Die Sitzungsdauer entscheidet dann darüber, ob der Ablauf überhaupt durchläuft.

Wie oft ändert sich das Layout?

Ein Selektor ist eine Wette darauf, dass eine Struktur hält. Auf gepflegten Seiten hält sie Monate, auf Seiten im Umbau Tage. Das, und nicht das Volumen, macht Scraper im Unterhalt teuer.

Wozu haben Sie sich verpflichtet?

Nutzungsbedingungen, robots-Vorgaben und die Art der Daten begrenzen gemeinsam, was vertretbar ist. Dass eine Seite öffentlich erreichbar ist, beantwortet keine dieser Fragen.

Ein Vorgehen, das der Praxis standhält

In dieser Reihenfolge, weil jeder Schritt den nächsten überflüssig machen kann.

  1. Erst die Daten suchen, dann das DOM

    Öffnen Sie das Netzwerkpanel und sehen Sie, was die Seite selbst aufruft. Eine dokumentierte Schnittstelle, ein Feed oder der JSON-Endpunkt hinter der Tabelle ist schneller, stabiler und unstrittiger als jedes Parsen.

  2. robots.txt und Bedingungen lesen und den Befund festhalten

    Nicht als Formalie. Die Dokumentation dessen, was Sie wann geprüft haben, macht aus einer Ermessensentscheidung eine begründbare, und sie kostet eine Minute.

  3. Mit dem günstigsten funktionierenden Client abrufen

    Beginnen Sie mit einer einfachen HTTP-Anfrage. Wechseln Sie erst dann zum Browser, wenn Sie bestätigt haben, dass der Inhalt nicht in der Antwort steht. Der Browser ist der teure Teil jedes Scrapers.

  4. Gegen Stabiles extrahieren

    Bevorzugen Sie zugängliche Namen, Datenattribute und Textanker gegenüber generierten Klassennamen und Positionspfaden. Ein Selektor auf einem gehashten Klassennamen ist ein terminierter Ausfall.

  5. Vor dem Speichern prüfen

    Sichern Sie Form und Plausibilität an der Grenze ab. Ein Scraper, der eine Woche lang unbemerkt leere Werte schreibt, ist schlimmer als einer, der am ersten Tag laut scheitert.

  6. Sich selbst begrenzen

    Orientieren Sie sich an einem plausiblen menschlichen Tempo und bleiben Sie deutlich darunter. Zurückhaltung ist die höfliche Wahl und zugleich diejenige, die Sie nicht blockiert.

Häufige Fragen

Ist Web Scraping legal?

Es gibt keine pauschale Antwort, weil mindestens vier Rechtsgebiete gleichzeitig gelten und in verschiedene Richtungen weisen: Vertragsrecht, Urheber- und Datenbankrecht, Datenschutz bei Personenbezug sowie Regeln zum unbefugten Zugriff. Öffentlich erreichbar heißt nicht frei verwendbar, und die Bewertung unterscheidet sich je nach Rechtsordnung.

Worin unterscheiden sich Scraping und Crawling?

Crawling entdeckt Seiten über Verlinkungen, Scraping entnimmt einer bereits vorliegenden Seite ihre Felder. Reale Systeme tun beides, doch sie versagen unterschiedlich und gehören im eigenen Code getrennt.

Brauche ich Proxys?

Ehrlicher lautet die Antwort meist: Sie brauchen eine niedrigere Anfragerate. Proxy-Rotation behandelt Blockierung als Netzwerkproblem, obwohl sie in der Regel ein Verhaltensproblem ist, und macht aus einer technischen Frage eine Beschaffungsfrage.

Wie halte ich einen Scraper am Laufen?

Überwachen Sie die Form der Ausgabe, nicht den Rückgabewert. Füllgrade einzelner Felder und Zeilenzahlen zeigen eine stille Layoutänderung Tage bevor jemandem auffällt, dass die Zahlen falsch sind. Ein Prozess, der mit null endet, sagt nichts.

Wenn die Seite einen echten Browser braucht

EU-gehostete Sitzungen, ohne Proxy-Rotation und ohne Verschleierung. Fünf Browser-Stunden zum Ausprobieren.