Robots.txt für Web-Scraping-Leitfaden

In diesem Leitfaden erfahren Sie mehr über robots.txt, warum es für das Web-Scraping wichtig ist und wie Sie es im Scraping-Prozess verwenden können.
9 min lesen
Robots.txt for web scraping

Dieser Leitfaden zum Web-Scraping von robots.txt behandelt folgende Themen:

  • Was ist robots.txt?
  • Warum ist sie für das Web-Scraping wichtig?
  • Konsequenzen, wenn es beim Scraping einer Website ignoriert wird
  • Häufige Anweisungen, die Sie für das Web-Scraping kennen müssen
  • Wie man sie in einem Web-Scraping-Prozess verwendet

Was ist robots.txt?

robots.txt ist eine Textdatei, die zur Implementierung des Robots Exclusion Protocol (REP) verwendet wird, einem Standard zur Anweisung von Web-Robots, wie sie mit einer Website interagieren sollen. Im Detail legt robots.txt fest, welche Bots die Website besuchen dürfen, auf welche Seiten und Ressourcen sie zugreifen können, mit welcher Geschwindigkeit und vieles mehr. Bei diesen Bots handelt es sich in der Regel um Webcrawler, die von Suchmaschinen wie Google, Bing und DuckDuckGo zum Indizieren des Webs verwendet werden.

Gemäß der Google-Spezifikation kann jede Domain (oder Subdomain) eine robots.txt-Datei haben. Diese ist optional und muss im Stammverzeichnis der Domain abgelegt werden. Mit anderen Worten: Wenn die Basis-URL einer Website https://example.com lautet, dann ist die robots.txt-Datei unter https://example.com/robots.txt verfügbar.

So sieht beispielsweise die robots.txt-Datei von Bright Data aus:

User-agent: *

Disallow: /lum/

Disallow: /www/*.html

Disallow: /use-cases/fintech

Disallow: /products/datasets2/

Disallow: /events/*

Verbieten: /wp-stage/*

Verbot: /www/*

Disallow: /svc/*

Host: brightdata.com

Sitemap: https://brightdata.com/sitemap_index.xml

Wie Sie sehen können, handelt es sich hierbei lediglich um eine Textdatei, die eine Reihe von Regeln und Anweisungen für Web-Bots enthält.

Beachten Sie, dass Anweisungen wie „User-agent” und „Disallow” nicht zwischen Groß- und Kleinschreibung unterscheiden. Im Gegensatz dazu wird bei Werten zwischen Groß- und Kleinschreibung unterschieden. Daher ist „/lum/” nicht dasselbe wie „/Lum/”.

Warum ist dies für das Web-Scraping wichtig?

Die Bots, für die die robots.txt-Datei Anweisungen enthält, sind nicht nur Crawling-Robots von Suchmaschinen. Dies gilt auch für alle automatisierten Softwareprogramme, die mit einer Website interagieren, einschließlich Web-Scraper. Letztendlich sind Scraping-Programme nichts anderes als automatisierte Bots. Außerdem führen sie in der Regel Web-Crawling wie Suchmaschinen-Bots durch. Erfahren Sie mehr in unserem Vergleichsleitfaden zu Web-Crawling und Web-Scraping.

Beim Scraping einer Website ist es daher entscheidend, die robots.txt-Datei der Zielwebsite zu beachten. Dies würde Folgendes bedeuten:

  • Einhaltung gesetzlicher Vorschriften: Web-Scraper sollten sich an die von den Website-Betreibern festgelegten Regeln halten, um einen ethischen Ansatz für das Web-Scraping zu gewährleisten.
  • Reduzierte Serverlast: Crawler und Scraper sind ressourcenintensiv, und die Einhaltung der Richtlinien trägt dazu bei, eine Überlastung der Website zu vermeiden.
  • Vermeidung von Anti-Bot-Maßnahmen: Viele Websites überwachen den eingehenden Web-Traffic, um nicht autorisierte Bots zu blockieren, die sich nicht an die festgelegten Regeln halten.

Nun stellt sich die Frage: Was passiert, wenn Ihr Scraping-Skript die robots.txt nicht beachtet? Das erfahren Sie im folgenden Abschnitt!

Konsequenzen der Nichtbeachtung von robots.txt beim Scraping einer Website

Websites reagieren sehr unterschiedlich auf Verstöße gegen ihre robots.txt-Datei. Manchmal passiert gar nichts. In anderen Fällen kann es zu schwerwiegenden Konsequenzen kommen. Im Allgemeinen gibt es folgende Szenarien, die Sie berücksichtigen müssen, wenn Sie robots.txt beim Web-Scraping ignorieren:

  • Sperren und Betriebsstörungen: Anti-Scraping- und Anti-Bot-Technologien können Ihre IP vorübergehend oder dauerhaft sperren. Dies beeinträchtigt die Effizienz eines Scraping-Prozesses.
  • Rechtliche Schritte: Wenn Sie sich nicht daran halten, können rechtliche Schritte folgen. Dies ist möglich, wenn der Fingerabdruck, den das Scraping-Skript hinterlässt, Ihre Identität preisgibt. Schützen Sie Ihre Privatsphäre mit einem Web-Scraping-Proxy
  • Verstärkte Kontrolle: Web-Sicherheitsexperten, ISPs und Cybersicherheitsorganisationen könnten beginnen, Ihre Web-Scraping-Aktivitäten zu untersuchen.

Dies sind nur einige Beispiele, aber sie reichen aus, um die Relevanz des Themas zu verstehen. Um robots.txt einzuhalten, müssen Sie zunächst die Bedeutung seiner Anweisungen verstehen. Zeit, sich damit zu befassen!

Gängige robots.txt-Anweisungen, die Sie für das Web-Scraping kennen müssen

Die REP-Spezifikation umfasst nur wenige Anweisungen, die eine robots.txt-Datei festlegen kann. Im Laufe der Zeit haben Suchmaschinenspezifikationen weitere mögliche Regeln eingeführt. Diese stellen einen De-facto-Standard dar und müssen ebenfalls berücksichtigt werden.

Sehen Sie sich nun die wichtigsten robots.txt-Anweisungen für das Web-Scraping an.

User-Agent

User-Agent gibt an, welche User-Agents die Website crawlen dürfen. Ein User-Agent kann ein Webcrawler, Spider, Scraper oder ein beliebiger Bot sein. In der Regel verwenden Website-Administratoren diese Direktive, um Crawler bestimmter Suchmaschinen einzuschränken oder anzuleiten.

Die Syntax der Richtlinie lautet:

User-agent: <user_agent_name>

Disallow: [Wert]

Wenn <user_agent_name> * ist, bedeutet dies, dass jeder Bot mit der Website interagieren darf. Die Disallow-Anweisung muss relative Pfade enthalten und den Zugriff auf diese bestimmten Teile der Website einschränken.

Beliebte User-Agent-Strings sind:

Suchmaschine User-Agent-Name
Baidu baiduspider
Bing bingbot
Google Googlebot
Yahoo! slurp
Yandex yandex

Betrachten Sie das folgende Beispiel:

User-Agent: *

Disallow: /private/

Die oben genannte robots.txt-Datei verbietet allen User-Agents den Zugriff auf Seiten unter dem Pfad /private/. Somit ist nicht nur /private/admin-login.php verboten, sondern auch /private/platform/dashboard.php. Das bedeutet, dass auch Dateien in Unterordnern von der Disallow-Regel betroffen sind.

Beachten Sie, dass derselbe User-Agent mehr als eine Disallow-Regel haben kann:

User-Agent: *

Disallow: /private/

Disallow: /admin/

In diesem Fall sind sowohl der Pfad /private/ als auch der Pfad /admin/ gesperrt.

Wenn Disallow keinen Wert hat, sind alle Seiten für den Zugriff zugelassen:

User-Agent: *

Disallow:

Wenn stattdessen der Wert / enthalten ist, bedeutet dies, dass alle Seiten gesperrt sind:

User-agent: *

Disallow: /

Der offizielle Standard für robots.txt erwähnt keine regulären Ausdrücke oder Platzhalter für Disallow, aber alle großen Suchmaschinen erwarten diese. Daher ist es ziemlich üblich, etwas wie Folgendes zu sehen:

Disallow: /*.php

Disallow: /resources/*.pdf

Dadurch wird verhindert, dass Ihre Bots auf PDF-Dateien unter /resources/ und PHP-Dateien zugreifen können.

Eine nicht standardmäßige Gegenanweisung zu Disallow ist Allow, die die einzigen zulässigen Pfade angibt. Sehen Sie sich das folgende Beispiel an:

User-agent: *

Allow: /

Das entspricht:

User-agent: *

Disallow:

Allow kann bestimmte Routen überschreiben, die durch Disallow blockiert sind:

User-agent: *

Disallow: /private/

Allow: /private/terms-and-conditions.php

In diesem Beispiel für eine robots.txt-Datei sind alle Seiten unter /private/ gesperrt, mit Ausnahme von /private/terms-and-conditions.php.

Beachten Sie, dass dieselbe robots.txt-Datei mehrere User-Agent-Anweisungen enthalten kann, um verschiedene Webroboter anzusprechen:

User-agent: Googlebot

Disallow:

User-agent: bingbot

Disallow: /blog/

Sitemap

Sitemap ist eine nicht standardmäßige Anweisung, die den Speicherort der XML-Sitemap einer Website enthält:

Sitemap: https://www.example.com/sitemap.xml

Diese Regel informiert Bots über den Speicherort der XML-Sitemap, die nützliche Informationen über die Struktur der Website enthält. Das Verfolgen der in einer Sitemap enthaltenen URLs erleichtert das Scrapen einer gesamten Website. Entdecken Sie unseren Sitemap-Scraper!

Beachten Sie, dass die URL, die auf die Sitemap-Datei verweist, absolut sein muss.

Da eine Website mehrere Sitemaps haben kann, kann robots.txt viele Sitemap-Anweisungen enthalten:

Sitemap: https://www.example.com/sitemaps/page-sitemap.xml

Sitemap: https://www.example.com/sitemaps/post-sitemap.xml

Sitemap: https://www.example.com/sitemaps/author-sitemap.xml

Crawl-Delay

Die inoffizielle und wenig verbreitete Crawl-Delay-Anweisung legt fest, wie viele Sekunden Webcrawler zwischen aufeinanderfolgenden Anfragen an die Website warten sollen:

User-Agent: *

Crawl-Delay: 5

Es handelt sich um eine User-Agent-spezifische Direktive, deren Ziel es ist, eine Überlastung der Server zu verhindern. In diesem Beispiel werden alle User-Agents angewiesen, zwischen den Seitenaufrufen eine Verzögerung von 5 Sekunden einzuhalten.

Request-Rate

Die seltene, benutzerspezifische und nicht standardmäßige Anweisungsrichtlinie „Request-Rate“ legt die maximale Anzahl von Anfragen fest, die ein Benutzer innerhalb eines bestimmten Zeitraums an die Website stellen kann:

User-Agent: *

Request-Rate: 1/10

Diese Regel weist beispielsweise alle User-Agents an, ihre Anfragen auf eine alle 10 Sekunden zu beschränken.

Das Format für Request-Rate-Werte lautet:

<Anzahl_der_Anfragen>/<Sekunden>

Diese Anweisung ähnelt Crawl-Delay, da beide dazu beitragen, eine Überlastung des Servers zu vermeiden. Der Hauptunterschied besteht darin, dass Crawl-Delay dies durch eine Verzögerung erreicht, während Request-Rate dies durch die Durchsetzung von Ratenbeschränkungen erreicht.

Verwendung von robots.txt in einem Web-Scraping-Prozess

Sie wissen nun, was robots.txt ist und wie es funktioniert. Es bleibt nur noch zu sehen, wie Sie seine Verwendung in einen Web-Scraping-Prozess integrieren können. Hier ist, was Sie tun müssen, um die robots.txt-Datei für das Web-Scraping zu beachten:

  1. Rufen Sie die robots. txt-Datei der Zielwebsiteauf :
    • Senden Sie eine HTTP-GET-Anfrage an den Pfad /robots.txt, um die Datei herunterzuladen oder im Browser zu öffnen.
  2. Überprüfen Sie den Inhalt:
    • Lesen Sie die in der robots.txt-Datei enthaltenen Anweisungen.
    • Überprüfen Sie, ob es Disallow-Regeln gibt, die den Zugriff auf bestimmte URLs oder Verzeichnisse einschränken.
    • Suchen Sie nach Allow-Regeln, die den Zugriff auf bestimmte Bereiche innerhalb nicht zugelassener Pfade gewähren können.
    • Überprüfen Sie die Crawl-Delay- und Request-Rate-Richtlinien, falls angegeben.
  3. Erstellen Sie Ihr Scraping-Skript:
    • Erstellen oder ändern Sie Ihren Scraper und stellen Sie sicher, dass er den in robots.txt festgelegten Regeln entspricht.
    • Vermeiden Sie den Zugriff auf URLs, die für Ihren User-Agent nicht zulässig sind.
    • Implementieren Sie Drosselungsmechanismen in Ihrem Scraper, um die Crawl-Delay- oder Request-Rate-Beschränkungen einzuhalten.

Wie Sie sehen, müssen Sie die in robots.txt enthaltenen Anweisungen analysieren, bevor Sie Ihren Scraper erstellen. Nur so können Sie die zuvor genannten Konsequenzen vermeiden.

Et voilà! Sie sind jetzt ein Experte für das Web-Scraping von robots.txt!

Fazit

In diesem Artikel haben Sie erfahren, was robots.txt ist, warum Websites es verwenden und wie es Ihrem Scraper helfen kann, nicht blockiert zu werden. Im Detail haben Sie die Anweisungen analysiert, die sich auf Ihre Ziele beim Abrufen von Online-Daten auswirken können. Außerdem haben Sie gelernt, wie Sie einen ethischen Scraping-Prozess darauf aufbauen können.

Leider können Anti-Scraping-Lösungen Sie immer noch blockieren, egal wie robots.txt-konform Ihr Skript ist. Wie können Sie das vermeiden? Mit einem Proxy-Server. Es gibt mehrere Anbieter im Internet, und es würde Monate dauern, sie alle auszuprobieren. Glücklicherweise haben wir dieses Problem für Sie gelöst.

Bright Data kontrolliert die besten Proxy-Server und bedient über 20.000 Kunden und Fortune-500-Unternehmen. Sein herausragendes weltweites Proxy-Netzwerk umfasst:

Insgesamt handelt es sich um eine der größten und zuverlässigsten Scraping-orientierten Proxy-Infrastrukturen auf dem Markt. Sprechen Sie mit einem unserer Vertriebsmitarbeiter und finden Sie heraus, welches Produkt von Bright Data Ihren Anforderungen am besten entspricht.