Web-Scraping ist eine leistungsstarke Technik, um Daten von Websites zu extrahieren, aber sie muss verantwortungsvoll durchgeführt werden. Ein entscheidendes Element des Web Scraping ist das Verständnis und die Einhaltung der robots.txt-Datei. Dieser Artikel bietet einen detaillierten Einblick in die robots.txt-Datei, ihre Rolle beim Web-Scraping und die zu befolgenden Best Practices.
Was ist robots.txt?
Die Datei robots.txt ist ein Standard, der von Websites zur Kommunikation mit Webcrawlern und Bots verwendet wird. Sie gibt an, auf welche Teile der Website automatisierte Systeme zugreifen können und auf welche nicht. Obwohl die robots.txt-Datei in erster Linie für Suchmaschinen gedacht ist, hat sie auch Auswirkungen auf Web-Scraping-Praktiken.
Zweck
Der Hauptzweck von robots.txt besteht darin, Web-Crawlern (wie denen von Suchmaschinen) mitzuteilen, welche Seiten oder Abschnitte einer Website sie crawlen oder indizieren dürfen. Auf diese Weise kann verhindert werden, dass bestimmte Inhalte in den Suchmaschinenergebnissen erscheinen, die Serverlast gesteuert und der Zugang zu privaten oder sensiblen Informationen kontrolliert werden. Damit können Website-Administratoren die Aktivitäten von Web-Crawlern kontrollieren und verwalten, um Überlastungen zu vermeiden und sensible Daten zu schützen.
Standort
Die Datei robots.txt muss sich im Stammverzeichnis der Website befinden. Sie sollte zum Beispiel zugänglich sein über http://www.example.com/robots.txt.
Format
Die Datei besteht aus einfachem Text und folgt einer Grundstruktur. Sie enthält Direktiven, die angeben, welche Benutzeragenten (Bots) welche Regeln befolgen sollen.
Gemeinsame Richtlinien:
-
Benutzer-Agent
Legt fest, für welchen Webcrawler die folgenden Regeln gelten.
Zum Beispiel: Benutzer-Agent: *
Das Sternchen (*) ist ein Platzhalter, der für alle Bots gilt. -
Nicht zulassen
Gibt an, auf welche Pfade oder Seiten ein Crawler nicht zugreifen soll.
Zum Beispiel: Nicht zulassen: /privat/
Dadurch werden Bots angewiesen, keine URL zu crawlen, die mit /private/ beginnt. -
Erlauben Sie
Setzt eine Disallow-Direktive für bestimmte Pfade außer Kraft.
Zum Beispiel: Zulassen: /privat/oeffentliche-seite.html
Dies ermöglicht den Crawlern den Zugriff auf public-page.html, auch wenn /private/ nicht erlaubt ist. -
Kriechgangverzögerung
Legt eine Verzögerung zwischen den Anfragen fest, um die Belastung des Servers zu steuern.
Zum Beispiel: Kriechgang-Verzögerung: 10 -
Inhaltsverzeichnis
Gibt den Speicherort der XML-Sitemap an, damit Crawler die Seiten besser finden und indizieren können.
Zum Beispiel: Inhaltsverzeichnis: http://www.example.com/sitemap.xml
Beispiel einer robots.txt-Datei
Benutzer-Agent: * Nicht zulassen: /privat/ Erlauben: /privat/öffentliche-seite.html Crawl-Verzögerung: 12 Sitemap: http://www.example.com/sitemap.xml
Zusätzliche Überlegungen
- Einige Suchmaschinen haben eine Größenbeschränkung für die
robots.txt
Datei, normalerweise 500 KB. Stellen Sie sicher, dass die Datei diese Grenze nicht überschreitet. - Die
robots.txt
Datei sollte die Kodierung UTF-8 verwenden. Die Verwendung anderer Kodierungen kann das korrekte Parsen verhindern. - Einige Crawler (wie Googlebot) unterstützen die Verwendung von Wildcards in
Nicht zulassen
undErlauben Sie
Direktiven (z.B.,*
für beliebige Zeichen,$
für das Ende einer Zeichenkette).Nicht zulassen: /privat/* Nicht zulassen: /temp/$
- Die
robots.txt
Datei wird zwischen Groß- und Kleinschreibung unterschieden. Zum Beispiel,/Admin/
und/admin/
sind unterschiedliche Wege. - Die Menschen können die
#
Symbol, um Kommentare in die Datei einzufügen, die von Crawlern ignoriert werden, aber Administratoren helfen können, die Datei zu verstehen und zu pflegen.# Verhindern, dass alle Crawler auf Verwaltungsseiten zugreifen Benutzer-Agent: * Nicht zulassen: /admin/
- Vor der Anwendung der
robots.txt
Datei in eine Produktionsumgebung übertragen, verwenden Sie Tools (wie den robots.txt-Tester in der Google Search Console), um die Regeln zu testen und sicherzustellen, dass sie wie erwartet funktionieren. - Bei großen Websites oder solchen mit dynamischen Inhalten kann es notwendig sein, die Daten dynamisch zu generieren.
robots.txt
Datei. Stellen Sie sicher, dass die generierte Datei immer gültig ist und alle erforderlichen Regeln enthält. - Nicht alle Crawler befolgen die
robots.txt
Dateiregeln, so dass zusätzliche Maßnahmen (wie Server-Firewalls, IP-Blacklists usw.) erforderlich sein können, um sensible Inhalte vor böswilligen Crawlern zu schützen. - Wenn Sie verhindern möchten, dass Suchmaschinen bestimmte Seiten indizieren, aber Crawlern den Zugriff auf diese Seiten erlauben, um andere Inhalte zu holen, verwenden Sie die
noindex
meta tag anstelle vonNicht zulassen
.<meta name="robots" content="noindex">
- Versuchen Sie, die
robots.txt
Datei einfach zu halten und übermäßig komplexe Regeln zu vermeiden. Komplexe Regeln können schwer zu pflegen sein und zu möglichen Parsing-Fehlern führen.
Wie sich robots.txt auf Web Scraping auswirkt
-
Leitlinien für Crawler
Die Hauptfunktion von robots.txt besteht darin, Web-Crawlern Anweisungen zu geben, auf welche Teile der Website nicht zugegriffen werden darf. Wenn beispielsweise eine Datei oder ein Verzeichnis in robots.txt verboten ist, wird erwartet, dass Crawler diese Bereiche meiden.
-
Achtung vor robots.txt
- Ethisches Scraping: Viele ethische Web-Scraper und Crawler halten sich an die in robots.txt festgelegten Regeln, um den Eigentümern von Websites entgegenzukommen und eine Überlastung des Servers zu vermeiden.
- Rechtliche Erwägungen: Die Nichtbeachtung von robots.txt ist zwar rechtlich nicht bindend, kann aber manchmal zu rechtlichen Problemen führen, insbesondere wenn das Scraping Schäden verursacht oder gegen die Nutzungsbedingungen verstößt.
-
Unerlaubte vs. erlaubte Pfade
- Unzulässige Pfade: Diese werden mit der Disallow-Direktive angegeben. Zum Beispiel,
Nicht zulassen: /private-data/
bedeutet, dass alle Crawler das Verzeichnis /private-data/ vermeiden sollten. - Erlaubte Pfade: Wenn bestimmte Verzeichnisse oder Seiten erlaubt sind, können sie mit der Direktive Allow angegeben werden.
- Unzulässige Pfade: Diese werden mit der Disallow-Direktive angegeben. Zum Beispiel,
-
Benutzer-Agent-spezifische Regeln
In der Datei robots.txt können mit Hilfe der User-agent-Direktive Regeln für verschiedene Crawler festgelegt werden.
Zum Beispiel:
Benutzer-Agent: Googlebot
Nicht zulassen: /no-google/Dadurch wird dem Googlebot der Zugriff auf /no-google/ verwehrt, anderen Crawlern aber ermöglicht.
-
Serverlast
Durch die Befolgung der robots.txt-Richtlinien verringern Scraper das Risiko der Überlastung eines Servers, was passieren kann, wenn zu viele Anfragen zu schnell gestellt werden.
-
Kein Sicherheitsmechanismus
Die Datei robots.txt ist kein Sicherheitsmerkmal. Sie ist eine Richtlinie, keine Einschränkung. Sie verlässt sich darauf, dass Crawler die festgelegten Regeln respektieren. Böswillige Scraper oder solche, die so programmiert sind, dass sie robots.txt ignorieren, können immer noch auf nicht zugelassene Bereiche zugreifen.
-
Einhaltung der Vorschriften und bewährte Praktiken
- Beachten Sie robots.txt: Um potenzielle Konflikte zu vermeiden und die Betreiber von Websites zu respektieren, sollten sich Scraper an die in robots.txt festgelegten Regeln halten.
- Berücksichtigen Sie robots.txt Status: Prüfen Sie vor dem Scraping einer Website immer die robots.txt-Datei, um sicherzustellen, dass die Richtlinien der Website eingehalten werden.
Häufige Missverständnisse über robots.txt
-
robots.txt ist rechtlich bindend
robots.txt ist kein rechtlicher Vertrag, sondern ein Protokoll zur Verwaltung des Crawler-Zugriffs. Es ist zwar wichtig für ethisches Scraping, setzt aber keine rechtlichen Zugangsbeschränkungen durch.
-
robots.txt Verhindert jegliches Scraping
robots.txt ist eine Richtlinie für Bots und Crawler, verhindert aber nicht alle Formen des Scrapings. Manuelles Scraping oder hochentwickelte Tools können immer noch auf eingeschränkte Bereiche zugreifen.
-
robots.txt sichert vertrauliche Daten
robots.txt ist keine Sicherheitsfunktion. Sie ist eher für die Verwaltung des Crawler-Zugriffs als für die Sicherung sensibler Informationen gedacht.
Wie man Seiten von einer Website mit robots.txt scrapen kann

1. Vorbereitungen für das Scraping
Einrichten Ihrer Umgebung
Notwendige Installation Python Bibliotheken:
Anfragen importieren von bs4 importieren BeautifulSoup importiere Zeit
Die Wahl der richtigen Werkzeuge
- Anfragen: Für die Erstellung von HTTP-Anfragen.
- BeautifulSoup: Zum Parsen von HTML und XML.
- Scrapy: Ein umfassendes Web Scraping Framework.
- Selen: Für die Interaktion mit dynamisch geladenen Inhalten.
Bewertung der Nutzungsbedingungen der Website
Überprüfen Sie die Nutzungsbedingungen der Website, um sicherzustellen, dass Ihre Aktionen mit den Richtlinien der Website übereinstimmen. Einige Websites verbieten das Scraping ausdrücklich.
2. Kratzen mit Bedacht
Abrufen und Analysieren von robots.txt
Überprüfen Sie zunächst die robots.txt-Datei, um die Crawling-Regeln der Website zu verstehen:
response = requests.get('https://example.com/robots.txt') robots_txt = response.text def parse_robots_txt(robots_txt): rules = {} user_agent = '*' for line in robots_txt.split('\n'): if line.startswith('User-agent'): user_agent = line.split(':')[1].strip() elif line.startswith('Disallow'): path = line.split(':')[1].strip() rules[user_agent] = rules.get(user_agent, []) + [path] return rules rules = parse_robots_txt(robots_txt)
Identifizierung zulässiger und unzulässiger Pfade
Bestimmen Sie anhand der robots.txt-Richtlinien, auf welche Pfade Sie legal und ethisch einwandfrei zugreifen können:
allowed_paths = [path for path in rules.get('*', []) if not path.startswith('/')]
Ethischer Umgang mit unzulässigen Pfaden
Wenn Sie Daten von nicht zugelassenen Pfaden benötigen oder Websites scrapen möchten, die durch robots.txt geschützt sind, sollten Sie die folgenden Optionen in Betracht ziehen:
- Setzen Sie sich mit dem Eigentümer der Website in Verbindung: Beantragen Sie die Erlaubnis zum Zugriff auf die Daten.
- Verwenden Sie alternative Methoden: Erkunden Sie APIs oder öffentliche Datenquellen.
3. Alternative Methoden des Datenzugangs
APIs und ihre Vorteiletages
Viele Websites bieten APIs an, die einen strukturierten Zugriff auf ihre Daten ermöglichen. Die Verwendung von APIs ist oft zuverlässiger und respektvoller als Scraping.
Öffentliche Datenquellen
Suchen Sie nach öffentlich verfügbaren Daten, die Ihren Bedürfnissen entsprechen könnten. Regierungswebsites, Forschungseinrichtungen und offene Datenplattformen sind gute Anlaufstellen.
Vereinbarungen über die gemeinsame Nutzung von Daten
Setzen Sie sich mit dem Eigentümer der Website in Verbindung, um Vereinbarungen über die gemeinsame Nutzung von Daten auszuhandeln. Dies kann den Zugang zu Daten ermöglichen und gleichzeitig die Richtlinien der Website respektieren.
4. Fortgeschrittene Techniken
Scraping von dynamisch geladenen Inhalten
Verwenden Sie Selenium oder ähnliche Tools zum Scrapen von Inhalten, die dynamisch durch JavaScript geladen werden:
von selenium import webdriver treiber = webdriver.Chrome() driver.get('https://example.com') html = driver.page_source soup = BeautifulSoup(html, 'html.parser')
Verwendung von Headless Browsern
Headless-Browser wie Headless Chrome oder PhantomJS können mit Webseiten interagieren, ohne eine Benutzeroberfläche anzuzeigen, was sie für das Scraping dynamischer Inhalte nützlich macht.
Umgehung von Erkennungs- und Umschlagshäufigkeitsgrenzen
Wechseln Sie die Benutzeragenten, verwenden Sie Proxys und setzen Sie Verzögerungen zwischen den Anfragen ein, um menschliches Verhalten zu imitieren und eine Blockierung zu vermeiden.
OkeyProxy ist ein leistungsstarker Proxy-Anbieter, der Folgendes unterstützt automatische Rotation der privaten IPs mit hoher Qualität. Mit ISPs, die mehr als 150 Millionen IPs weltweit anbieten, können Sie sich jetzt registrieren und 1 GB kostenlos testen!

Schlussfolgerung
Wenn Sie diesen Leitfaden befolgen, können Sie die Komplexität des Scrapings von Webseiten mit robots.txt bewältigen und gleichzeitig ethische und rechtliche Standards einhalten. Die Einhaltung von robots.txt hilft Ihnen nicht nur, potenzielle rechtliche Probleme zu vermeiden, sondern gewährleistet auch eine kooperative Beziehung zu den Eigentümern von Websites. Viel Spaß beim Scraping!