Zum Inhalt springen
Glossar

Crawling findet die Seiten, Scraping liest sie

Ein Crawler startet bei einer Ausgangsadresse, folgt Links und merkt sich, was er bereits gesehen hat. Es ist eine Graphdurchquerung mit einem Rücksichtsbudget, und fast alle Schwierigkeiten stecken in einem dieser beiden Begriffe.

Woraus ein Crawler tatsächlich besteht

Vier Bestandteile, wobei die interessante Technik in den ersten beiden liegt.

Die Warteschlange

Die Liste des als Nächstes Abzurufenden. Ihre Sortierung entscheidet über Breite oder Tiefe, ihre Duplikaterkennung darüber, ob Sie dieselbe Seite unter fünfzehn Adressen abrufen. Sitzungskennungen und Tracking-Parameter erzeugen viele Adressen für eine Seite.

Das Rücksichtsbudget

Wie schnell Sie einen Host ansprechen. Ein Crawler ohne Begrenzung je Host ist von einer Überlastung nicht zu unterscheiden, und dass es unbeabsichtigt war, überzeugt niemanden.

Die Ausschlussregeln

robots.txt, Crawl-Verzögerung, Meta-Angaben. Das sind Konventionen, keine technischen Sperren. Gerade deshalb ist ihre Beachtung eine Aussage über die eigene Arbeitsweise und keine erzwungene Einschränkung.

Die Ablage

Was Sie behalten und wie lange. Crawls erzeugen große Datenmengen, deren Wert schnell verfällt. Eine im Voraus festgelegte Aufbewahrung ist erheblich günstiger als eine nach dem Volllaufen der Platte.

Eine Website crawlen, ohne zum Problem zu werden

Die Reihenfolge zählt: Die günstigsten Einschränkungen zuerst.

  1. Prüfen, ob eine Sitemap vorliegt

    Eine Sitemap ist die Adressliste der Website aus erster Hand. Sie zu nutzen ist schneller, belastet den Host weniger und übersieht seltener Seiten, auf die nirgends verlinkt wird.

  2. robots.txt je Host abrufen und beachten

    Je Host, nicht je Crawl. Subdomains haben eigene Dateien, und die Regeln eines Hosts über eine ganze Domain hinweg zwischenzuspeichern ist ein häufiger und folgenreicher Fehler.

  3. Adressen vor dem Einreihen normalisieren

    Fragmente entfernen, Parameter sortieren, bekannte Tracking-Schlüssel verwerfen, relative Pfade auflösen. Eine Duplikaterkennung nach dem Abruf hat den Abruf bereits gekostet.

  4. Rate je Host und je Adresse begrenzen

    Eine globale Grenze schützt niemanden: Hundert Anfragen pro Sekunde auf zwei Hosts sind fünfzig je Host. Maßgeblich ist die Grenze, die der Host erlebt.

  5. Einen identifizierbaren User-Agent setzen

    Sagen Sie, wer Sie sind, und hinterlassen Sie eine Kontaktmöglichkeit. Wer Sie erreichen kann, bittet Sie meist um Zurückhaltung, bevor er sperrt. Das ist für beide Seiten das bessere Ergebnis.

  6. Tiefe und Seitenzahl vorab begrenzen

    Jeder Crawl einer unbegrenzten Website ist unbegrenzt. Das Abbruchkriterium im Voraus festzulegen unterscheidet einen Crawl von einem Vorfall.

Häufige Fragen

Brauche ich zum Crawlen einen Browser?

Für die Entdeckung meist nicht. Links stehen im HTML und ein HTTP-Client findet sie. Einen Browser brauchen Sie, wenn die Navigation selbst clientseitig ist, was bei Single-Page-Anwendungen üblich ist, weil der Linkgraph dort erst nach dem Router existiert.

Ist robots.txt rechtlich bindend?

Es ist eine Konvention, kein Gesetz, und die rechtliche Bedeutung hängt von der Rechtsordnung und davon ab, wie die Nutzungsbedingungen darauf verweisen. Sie dennoch als bindend zu behandeln, ist die vernünftige Grundhaltung: Ihre Missachtung ist der deutlichste Beleg für Unredlichkeit, den man über den eigenen Betrieb liefern kann.

Wie vermeide ich doppelte Abrufe?

Normalisieren Sie konsequent und bilden Sie einen Hash über die normalisierte Adresse, zusätzlich einen über den Antwortkörper. Der zweite Test erfasst den Fall, dass verschiedene Adressen tatsächlich identische Inhalte liefern, was Normalisierung allein nie leistet.

Welche Crawl-Rate ist angemessen?

Langsamer als gedacht. Eine brauchbare Regel ist eine Anfrage pro Sekunde je Host als Obergrenze statt als Ziel, bei kleinen Websites oder steigenden Antwortzeiten deutlich darunter. Steigende Latenz ist eine Rückmeldung des Hosts.

Crawls, die sich zu erkennen geben

Keine Proxy-Rotation, keine Verschleierung von Merkmalen. Wenn Ihr Crawl sich verstecken muss, sind wir das falsche Werkzeug und sagen es.