Mit Hilfe von Webcrawlern kann man einfach Daten aus dem Internet für die Datenanalyse erhalten. Es gibt verschiedene Möglichkeiten, einen eigenen Crawler zu erstellen: Erweiterungen in Browsern, Python-Programmierung mit Beautiful Soup und Scrapy und Datenextraktionstools wie Octoparse.
Allerdings gibt es immer einen Krieg zwischen Spidern und Anti-Bots. Webentwickler wenden verschiedene Arten von Anti Scraping Techniken an, um zu verhindern, dass ihre Websites gescrapt werden. In diesem Artikel habe ich fünf häufig benutzte Anti Scraping Techniken aufgelistet und erklärt, wie Sie sie beim Web Scraping umgehen können.
1. IP
Eine der einfachsten Methode für eine Website, Web-Scraping-Aktivitäten zu erkennen, ist die IP-Verfolgung. Wenn eine Website herausfindet, dass eine überwältigende Anzahl von Anfragen regelmäßig oder innerhalb eines kurzen Zeitraums von einer einzigen IP-Adresse gesendet wurde, besteht eine große Chance, dass die IP als Bot verdächtigt wird. In diesem Fall kommt es bei der Entwicklung eines Anti-Scraping-Crawlers vor allem auf die Anzahl und Häufigkeit der Besuche pro Zeiteinheit an. Hier sind einige Szenarien, denen Sie begegnen können.
- Situation 1: Mehrfache Besuche innerhalb von Sekunden. Es ist unmöglich, dass ein echter Mensch so schnell surfen kann. Wenn Ihr Crawler also häufige Anfragen an eine Website sendet, würde die Website die IP-Adresse definitiv sperren, denn sie werden als Roboter identifizieren.
- Lösung: Verlangsamen Sie die Geschwindigkeit des Scrapings. Das Einrichten einer Verzögerungszeit (z. B. “Sleep”-Funktion) vor der Ausführung oder die Erhöhung der Wartezeit zwischen zwei Schritten sind empfehlenswert.
- Situation 2:Der Besuch einer Website in demselben Tempo. Ein echter Mensch wiederholt nicht immer die gleichen Verhaltensmuster. Einige Websites überwachen die Häufigkeit der Anfragen, und wenn die Anfragen in regelmäßigen Abständen nach genau demselben Muster gesendet werden, z. B. einmal pro Sekunde, wird der Anti-Scraping-Mechanismus sehr wahrscheinlich aktiviert.
- Lösung: Legen Sie für jeden Schritt Ihres Crawlers eine zufällige Verzögerungszeit fest. Mit einer zufälligen Scraping-Geschwindigkeit würde sich der Crawler eher so verhalten, wie Menschen in einer Website surfen.
- Situation 3: Einige hochentwickelte Anti-Scraping-Techniken beinhalten komplexe Algorithmen, um die Anfragen von verschiedenen IPs zu verfolgen und ihre durchschnittlichen Anfragen zu analysieren. Wenn die Anfrage einer IP-Adresse ungewöhnlich ist, z. B. wenn sie jeden Tag dieselbe Anzahl von Anfragen sendet oder dieselbe Website zur selben Zeit besucht, wird sie blockiert.
- Lösung: Ändern Sie Ihre IP regelmäßig. Die meisten VPN Services, Cloud Servers, und Proxy Services bieten rotierende IPs an. Wenn Anfragen über diese wechselnden IPs gesendet werden, verhält sich der Crawler weniger wie ein Bot, was das Risiko, blockiert zu werden, verringern kann.
2. Captcha
Haben Sie diese Art von Bild schon einmal gesehen, wenn Sie auf einer Website surften?
- Sie müssen etwas klicken
- Sie müssen bestimmte Bilder auswählen
- Sie müssen die richtige Zeichenfolge eingeben/auswählen
Diese Bilder werden Captcha genannt. Captcha steht für Completely Automated Public Turing test to tell Computers and Humans Apart. Es handelt sich um ein öffentliches automatisches Programm, mit dem festgestellt werden kann, ob der Benutzer ein Mensch oder ein Roboter ist. Dieses Programm stellt verschiedene Aufgaben, wie z. B. ein verunstaltetes Bild, das Ausfüllen von Lücken oder sogar Gleichungen, die angeblich nur von einem Menschen gelöst werden können.
Dieser Test hat sich seit langem weiterentwickelt, und derzeit setzen viele Websites Captcha als Anti-Scraping-Technik ein. Früher war es sehr schwer, Captcha direkt zu überwinden. Heutzutage können jedoch viele Open-Source-Tools zur Lösung von Captcha-Problemen eingesetzt werden, auch wenn sie fortgeschrittenere Programmierkenntnisse erfordern. Manche Menschen bauen sogar ihre eigenen Funktionsbibliotheken und entwickeln Bilderkennungstechniken mit maschinellem Lernen oder Deep-Learning-Fähigkeiten, um Captcha zu bestehen.
Es ist einfacher, sie nicht auszulösen, als sie zu lösen.
Für die meisten Menschen ist es am einfachsten, den Extraktionsprozess zu verlangsamen oder zu randomisieren, um den Captcha-Test nicht auszulösen. Die Anpassung der Verzögerungszeit oder die Verwendung rotierender IPs kann die Chance, dass der Test ausgelöst wird, wirksam verringern.
3. Einloggen
Viele Websites, insbesondere Social-Media-Plattformen wie Twitter und Facebook, zeigen Informationen erst an, nachdem man sich auf der Website angemeldet hat. Um solche Websites zu crawlen, müssten die Crawler auch die Anmeldeschritte simulieren.
Nach der Anmeldung auf der Website muss der Crawler die Cookies speichern. Ein Cookie ist ein kleiner Datensatz, der die Browsing-Daten der Nutzer speichert. Ohne die Cookies würde die Website vergessen, dass Sie sich bereits angemeldet haben, und würde Sie auffordern, sich erneut anzumelden.
Darüber hinaus erlauben einige Websites mit strengen Scraping-Mechanismen nur einen begrenzten Zugriff auf die Daten, wie z. B. 1000 Zeilen Daten pro Tag, selbst nach dem Einloggen.
Ihr Bot muss wissen, wie man sich anmeldet
- Simulieren Sie Tastatur- und Mausoperationen. Der Crawler sollte den Anmeldevorgang simulieren, der Schritte wie das Anklicken des Textfelds und der “Anmelden”-Schaltflächen mit der Maus oder das Eingeben von Konto- und Passwortinformationen mit der Tastatur umfasst.
- Melden Sie sich zuerst an und speichern Sie dann die Cookies. Bei Websites, die Cookies zulassen, merken sie sich die Nutzer, indem sie ihre Cookies speichern. Mit diesen Cookies ist es nicht mehr nötig, sich kurzfristig erneut auf der Website anzumelden. Dank dieses Mechanismus kann Ihr Crawler langwierige Anmeldeschritte vermeiden und die benötigten Informationen scrapen.
- Wenn Sie unglücklicherweise auf die oben genannten strengen Scaping-Mechanismen stoßen, können Sie Ihren Crawler so einplanen, dass er die Website in einer festen Frequenz überwacht, z. B. einmal pro Tag. Planen Sie den Crawler so ein, dass er in bestimmten Zeitabständen die neuesten 1000 Datenzeilen scrapen und die neuesten Daten sammelt.
4. UA
UA steht für User-Agent, ein Header für die Website zur Identifizierung des Besuchs des Nutzers. Er enthält Informationen wie das Betriebssystem und seine Version, den CPU-Typ, den Browser und seine Version, die Browsersprache, ein Browser-Plug-in usw.
Ein Beispiel UA: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, wie Gecko) Chrome/17.0.963.56 Safari/535.11
Wenn Ihr Crawler beim Scrapen einer Website keine Header enthält, würde er sich nur als Skript zu erkennen geben (wenn man z. B. Python zur Erstellung des Crawlers verwendet, würde er sich als Python-Skript erkennen). Websites würden die Anfrage eines Skripts definitiv blockieren. In diesem Fall muss sich der Crawler mit einem UA-Header als Browser ausgeben, damit die Websites ihm Zugang gewähren können.
Manchmal zeigt eine Website verschiedene Seiten oder Informationen in verschiedenen Browsern oder verschiedenen Versionen an, selbst wenn Sie die Website mit derselben URL aufrufen. Es besteht die Möglichkeit, dass die Informationen mit einem Browser kompatibel sind, während andere Browser blockiert werden. Um sicherzugehen, dass Sie auf die richtige Seite gelangen, sind mehrere Browser und Versionen erforderlich.
Wechseln Sie zwischen verschiedenen UAs, um nicht blockiert zu werden
Ändern Sie die UA-Informationen, bis Sie die richtige gefunden haben. Einige sensible Websites, die komplexe Anti-Scraping-Techniken anwenden, können sogar den Zugriff blockieren, wenn sie über einen längeren Zeitraum dieselbe UA verwenden. In diesem Fall müssen Sie die UA-Informationen regelmäßig ändern.
5. AJAX
Heutzutage werden immer mehr Websites mit AJAX entwickelt. AJAX steht für “Asynchronous JavaScript and XML” und ist eine Technik zur asynchronen Aktualisierung der Website. Kurz gesagt, die gesamte Website muss nicht neu geladen werden, wenn nur kleine Änderungen auf der Seite vorgenommen werden.
Wie können Sie also wissen, ob eine Website AJAX verwendet?
Eine Website ohne AJAX: Die gesamte Seite wird neu geladen, auch wenn Sie nur eine kleine Änderung an der Website vornehmen. Normalerweise würde ein Ladezeichen erscheinen und die URL würde sich ändern. Bei diesen Websites könnten wir uns den Mechanismus zunutze machen und versuchen, das Muster zu finden, wie die URLs sich ändern. Dann könnten Sie URLs nach diesem Muster generieren und Informationen direkt über diese URLs extrahieren, anstatt Ihrem Crawler beizubringen, wie Menschen auf Websites zu navigieren.
Eine Website mit AJAX: Nur die Stelle, auf die Sie klicken, wird geändert und es erscheint kein Ladezeichen. Normalerweise ändert sich die Web-URL nicht, so dass der Crawler sie auf unkomplizierte Weise verarbeiten muss.
Für einige komplexe Websites, die mit AJAX entwickelt wurden, wären spezielle Techniken erforderlich, um die einzigartigen verschlüsselten Wege auf diesen Websites zu finden und die verschlüsselten Daten zu extrahieren. Die Lösung dieses Problems könnte zeitaufwändig sein, da die verschlüsselten Wege auf den verschiedenen Seiten unterschiedlich sind. Wenn Sie einen Browser mit eingebauten JS-Operationen finden, könnte dieser die Website automatisch entschlüsseln und die Daten extrahieren.
Web-Scraping und Anti-Scraping-Techniken machen jeden Tag Fortschritte. Vielleicht sind diese Techniken schon veraltet, wenn Sie diesen Artikel lesen. Sie können jedoch jederzeit Hilfe von uns, von Octoparse, erhalten. Wir haben es uns zur Aufgabe gemacht, Daten für jedermann zugänglich zu machen, insbesondere für diejenigen, die keinen technischen Hintergrund haben. Mit Octoparse können wir Ihnen einsatzbereite Lösungen für all diese fünf Anti-Scraping-Techniken anbieten. Wenden Sie sich an uns, wenn Sie ein leistungsstarkes Web-Scraping-Tool für Ihr Unternehmen oder Projekt benötigen!
Zusammenfassung
Anti-Scraping-Technologien bieten starken Datenschutz und Plattformstabilität. Das Verständnis dieser Technologien hilft nicht nur den Organisationen, die Datensicherheit zu verbessern, sondern ermöglicht es auch den Daten-Crawlern, ihre Strategien bewusster zu optimieren, um Störungen bei der Durchführung legitimer Operationen zu minimieren. Durch die Wahrung eines Gleichgewichts zwischen Technologie und Ethik können sowohl Unternehmen als auch Schnorrer profitieren und ein sicheres und verantwortungsvolles Datenökosystem fördern. Wir hoffen, dass dieser Artikel Ihnen wertvolle Einblicke in die Suche nach dem richtigen Gleichgewicht zwischen Anti-Crawling und Datenzugriff gegeben hat.
Wenn Sie Probleme bei der Datenextraktion haben, oder uns etwas Vorschlägen geben möchten, kontaktieren Sie bitte uns per E-Mail (support@octoparse.com). 💬
👍👍 Wenn Sie Interesse an Octoparse und Web Scraping haben, können Sie es zunächst 14 Tage lang kostenlos ausprobieren.
Autor*in: Das Octoparse Team ❤️
Konvertiere Website-Daten direkt in Excel, CSV, Google Sheets und Ihre Datenbank.
Scrape Daten einfach mit Auto-Dedektion, ganz ohne Coding.
Scraping-Vorlagen für beliebte Websites, um Daten mit wenigen Klicks zu erhalten.
Mit IP-Proxys und fortschrittlicher API wird nie blockiert.
Cloud-Dienst zur Planung von Datenabfragen zu jedem gewünschten Zeitpunkt.