Zurück zum Blog
Wissenschaft des Web Scraping
Anda Miuțescu15. Juni 202113 Min. Lesezeit

Die ultimative Web Scraping Tipps & Tricks Liste

Die ultimative Web Scraping Tipps & Tricks Liste

1. Planen Sie, bevor Sie loslegen

Wie bei jedem Projekt lassen sich auch Web-Scraping-Aufträge viel einfacher bewältigen, wenn man schon vor dem Start eine klare Strategie entwickelt. Zunächst einmal: Wozu benötigen Sie die Daten? Das mag wie eine naheliegende Frage erscheinen, doch die Antwort ist entscheidend dafür, welche Informationen Sie sammeln sollten.

Als Nächstes stellt sich die Frage: Woher beziehen Sie die Informationen? Das Scraping-Tool sollte gut auf die zu durchsuchenden Websites abgestimmt sein. Eine genaue Prüfung Ihrer Datenquellen hilft Ihnen daher dabei, das richtige Programm für diese Aufgabe zu entwickeln oder zu erwerben.

Frage 3: Wie wollen Sie die gesammelten Informationen nutzen? Sie könnten sie selbst aufbereiten, eine Software verwenden oder sie sogar durch eine komplexe Datenverarbeitungskette leiten. Die Antwort darauf ist der erste Schritt bei der Festlegung der Struktur und des Dateiformats für die gesammelten Daten.

Es gibt noch viele weitere Fragen und Überlegungen, die Sie klären müssen, wobei die meisten davon stark davon abhängen, was Sie erreichen wollen. Eines ist sicher: Auch beim Web-Scraping gilt das Sprichwort „Zweimal messen, einmal schneiden“.

2. Verhalte dich menschlicher

Wenn Sie wissen möchten, ob ein Website-Besucher ein Mensch oder ein Bot ist, müssen Sie nur sein Verhalten beobachten. Bots agieren blitzschnell und interagieren nie mit der Seite, sofern sie nicht anders angewiesen werden. Daher lassen sie sich leicht erkennen und blockieren.

Damit der Scraper nicht entdeckt wird, musst du ihm beibringen, sich eher wie ein normaler Besucher, also wie ein Mensch, zu verhalten. Das Schöne daran ist, dass Menschen sich auf ganz unterschiedliche Weise verhalten, sodass du beim Programmieren viel Spielraum hast. Hier sind einige Aktionen, die wir dir empfehlen:

  • Füge zufällige Pausen ein, so als würde ein Mensch den Inhalt der Seite lesen. Eine Verzögerung von 5 bis 10 Sekunden reicht völlig aus.
  • Navigiere durch die Seiten in einer baumartigen Struktur. Wenn du mehrere untergeordnete Seiten ausliest, gehe beim Weitergehen immer über die übergeordnete Seite. Dadurch wird das Verhalten einer Person nachgeahmt, die auf eine Seite klickt, dann zurückgeht, dann auf die nächste klickt und so weiter.
  • Lass den Bot ab und zu auf irgendwelche Dinge klicken. Das machen doch alle, nicht nur ich, oder?

Der Grund, warum sich dein Bot auf eine bestimmte Art und Weise verhalten muss, liegt darin, dass die Website seine Aktivitäten möglicherweise überwacht und protokolliert. Aber was wäre, wenn die Website den Bot nicht nachverfolgen könnte? Lies den nächsten Punkt, um die Antwort zu erfahren.

3. Wechseln Sie Ihre Proxys

Einen Proxy zu nutzen, um sicherzustellen, dass deine echte IP-Adresse nicht gesperrt wird, ist eigentlich ein Kinderspiel. Genauso wie die Nutzung eines Proxys von einem bestimmten Standort aus, um auf regional gesperrte Inhalte zuzugreifen. Aber mit den richtigen Tools können Proxys noch viel mehr für dich leisten!

Im Moment benötigen Sie einen Server, um Ihren Proxy-Pool zu rotieren. Damit wird jede von Ihnen gesendete Anfrage einer zufälligen IP-Adresse aus dem Pool zugewiesen und an das Ziel gesendet. Auf diese Weise können Sie eine Website so oft scrapen, wie Sie möchten, und jede Anfrage sieht so aus, als käme sie von einem anderen Ort und einer anderen Person.

Darüber hinaus sorgen rotierende Proxys dafür, dass Sie im Falle einer IP-Sperre nicht blockiert bleiben, bis Sie den Proxy manuell wechseln. Eine Anfrage mag zwar fehlschlagen, die anderen jedoch nicht. Ein gutes Tool wiederholt zudem fehlgeschlagene Versuche; so wiederholt beispielsweise WebScrapingAPI fehlgeschlagene API-Aufrufe, um sicherzustellen, dass Ihre Datenbank lückenlos ist.

Um die bestmöglichen Ergebnisse zu erzielen, sollten Sie rotierende Residential-Proxys verwenden. Residential-IPs werden am seltensten bemerkt oder blockiert, und durch ihre Rotation machen Sie den Scraper noch schwerer aufzuspüren. Bedenken Sie jedoch, dass dies manchmal übertrieben sein kann. Wenn Sie es nicht mit aufwendigen Anti-Bot-Maßnahmen zu tun haben, können rotierende Rechenzentrums-Proxys die Aufgabe genauso gut und kostengünstiger erfüllen.

4. Verwenden Sie einen Headless-Browser

Ein Headless-Browser funktioniert genauso wie ein normaler Browser, verfügt jedoch über keine grafische Benutzeroberfläche. Um damit im Internet zu surfen, musst du eine Befehlszeilenschnittstelle verwenden.

Sie sollten auf jeden Fall einen Headless-Browser in Ihre Web-Scraping-Pipeline integrieren, und dynamische Websites sind der Grund dafür. Viele Websites nutzen heutzutage JavaScript, um ihren Besuchern ein besseres Nutzererlebnis zu bieten. Das einfachste Beispiel hierfür ist die Anpassung der Größe von Seitenelementen an die Bildschirmauflösung des Besuchers.

Das Problem ist, dass der begehrte HTML-Code hinter JavaScript-Code verborgen ist. Um daran zu gelangen, muss man das JavaScript ausführen. Ein gewöhnlicher Webcrawler kann das nicht, aber alle Browser können es.

Ohne eine Browserumgebung kann das Scraping-Tool also keine Daten von Websites erfassen, die Javascript verwenden – und das sind derzeit die meisten, oder zumindest die meisten, die von Bedeutung sind.

Wenn du einen Webcrawler von Grund auf neu entwickelst, empfehle ich dir, Puppeteer auszuprobieren. Hier findest du einige Informationen dazu, was das Programm leistet und wie man es einsetzt.

5. User-Agent-Header zyklisch ändern

„User-Agent“ ist der Name eines HTTP-Request-Headers, der der von dir besuchten Website mitteilt, welchen Browser und welches Betriebssystem du verwendest. In gewisser Weise nutzen Websites diesen Header, um mehr darüber zu erfahren, wer sie besucht. Er eignet sich hervorragend für Analysen und ist nebenbei auch nützlich, um Bots zu erkennen.

So kann eine User-Agent-Zeichenkette aussehen:

Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0

Es gibt drei Hauptszenarien, die Sie vermeiden sollten:

  • Wenn überhaupt kein User-Agent angegeben ist. Die meisten Scraper verwenden keinen, was verdächtig ist und ein deutliches Zeichen dafür, dass es sich um Bots handelt. Achte darauf, dass du bei jeder Anfrage normal aussehende Header sendest.
  • Ein veralteter User-Agent. Bei jedem neuen Update ändern Browser in der Regel den Header. Wenn Ihre Liste also einen User-Agent für Mozilla enthält, dieser aber durch ein Update geändert wurde, kann die besuchte Website erkennen, dass etwas nicht stimmt.
  • Bei jeder Anfrage denselben Header zu verwenden. Du könntest zwar den normalen User-Agent deines eigentlichen Browsers verwenden, doch dies würde dazu führen, dass Hunderte verschiedener Anfragen von unterschiedlichen IP-Adressen mit exakt demselben Fingerabdruck eingehen. Das ist ein eindeutiges Indiz.

Hier noch ein zusätzlicher Tipp zu diesem Thema: Versuchen Sie es einmal mit dem User-Agent „Googlebot“. Natürlich möchte jede Website indexiert werden, daher lassen sie Googles Crawler einfach gewähren. Ein Wort der Vorsicht jedoch: Auch diese Bots haben bestimmte IP-Adressen und Verhaltensmuster, sodass der User-Agent allein keine Erfolgsgarantie darstellt.

6. Anti-CAPTCHA-Funktionen hinzufügen

Wenn du gut scraptest, solltest du nur sehr selten auf CAPTCHAs stoßen. Sollte es dennoch passieren, ist das sehr ärgerlich, da es deinen Scraper zum Stillstand bringen oder falsche Daten zurückgeben könnte (den Code der CAPTCHA-Seite).

Der Plan zur Bekämpfung von CAPTCHAs besteht aus zwei Teilen: Prävention und Bekämpfung. Sie sollten sich vor allem auf die Prävention konzentrieren, da dies bei weitem die effizientere Option ist. Folgendes sollten Sie tun:

  • Verwende Proxys, damit es so aussieht, als kämen deine Anfragen von verschiedenen Quellen.
  • Ändere deine Request-Header (insbesondere den User-Agent). Andernfalls kannst du trotz der Verwendung mehrerer IP-Adressen immer noch erkannt werden.
  • Führen Sie den JavaScript-Code der Seite aus. Ein Headless-Browser ist hierfür am besten geeignet. Viele Websites zeigen jedem Besucher, der dies nicht tut, ein CAPTCHA an, da dies ein ungewöhnliches Verhalten ist.

Also, im Grunde genommen solltest du die Tipps Nr. 3, Nr. 4 und Nr. 5 befolgen.

Sollte der Scraper dennoch auf Probleme stoßen, benötigen Sie einen CAPTCHA-Löser. Achten Sie bei der Auswahl eines Web-Scraping-Tools darauf, dass diese Funktion bereits integriert ist. Es ist zwar technisch möglich, einen Löser selbst zu integrieren, doch das bedeutet zusätzlichen Programmieraufwand und Zeitverlust. Zu Ihrer Information: Unsere API verfügt über diese Funktion, auch wenn sie ohnehin nicht oft auf CAPTCHAs stößt.

7. Erstellen Sie eine URL-Liste

Wenn du einen Scraping-Auftrag startest, wirst du wahrscheinlich eine Liste mit URLs erstellen, die wertvolle Informationen enthalten. Hier ist ein Vorschlag: Anstatt die URLs einfach an den Scraper zu senden, führe eine Liste und markiere alle Links, die du bereits gecrawlt hast. Der Übersichtlichkeit halber kannst du die gescrapten Daten auch zusammen mit der URL speichern.

Der Grund dafür ist einfach: Sollte dein Computer abstürzen oder ein anderes unerwartetes Ereignis eintreten, weißt du dennoch, welche Daten du bereits hast, und vermeidest so unnötiges erneutes Scraping.

Wir empfehlen Ihnen, ein Skript für die Datenextraktion und -erfassung zu erstellen. Die manuelle Aktualisierung der Liste ist sehr aufwendig, und Sie werden ohnehin nicht mit dem Bot mithalten können.

8. Lerne, wie Seiten aufgebaut sind

Das Sammeln weiterer Daten nimmt natürlich mehr Zeit in Anspruch. Eine Möglichkeit, die Effizienz zu steigern, besteht daher darin, genau festzulegen, welche Informationen der Scraper erfassen soll. Theoretisch ist das einfach, doch jede Website und jede Webseite ist einzigartig. Um den Aufwand zu verringern und Zeit zu sparen, müssen Sie sich ein wenig mit der Struktur Ihrer Zielseiten vertraut machen.

Und so geht's:

  • Gehen Sie auf die Seite;
  • Klicken Sie mit der rechten Maustaste auf den gewünschten Text und wählen Sie „Element untersuchen“;
  • Beachte, wie diese Informationen verschachtelt sind, in welchen Klassen sie sich befinden und unter welchem Tag;
  • Achte auf strukturelle Muster auf anderen Seiten, die für dich von Interesse sind. Wahrscheinlich kannst du ein Skript erstellen, das alle benötigten Informationen von der gesamten Website sammelt.

Wenn Sie diese Schritte durchgeführt haben, wird es Ihnen viel leichter fallen, nur die Informationen herauszufiltern, die Sie benötigen. Der Vorteil dabei ist, dass Sie sich nicht mehr mit irrelevanten HTML-Elementen herumschlagen müssen, die Ihre Dokumente überladen.

Das Verständnis der Struktur ist besonders nützlich, wenn es darum geht, Produktinformationen zu extrahieren. Produktseiten auf derselben Website sind alle ähnlich, wenn nicht sogar identisch aufgebaut. Wenn man die Logik dahinter erkennt, lassen sich die Daten viel schneller extrahieren und auswerten.

9. Füge eine Verzögerung zwischen den Anfragen ein

Der Sinn eines Web-Scrapers besteht darin, Daten schneller zu sammeln, als es ein Mensch könnte. Das verstehen wir, aber diese Geschwindigkeit hat einen unerwünschten Nebeneffekt: Sie macht deutlich, dass die Anfragen von einem Bot gesendet werden.

Denk daran, was wir darüber gesagt haben, sich wie ein normaler Besucher zu verhalten: Wenn der Scraper auffällt, ist die Wahrscheinlichkeit viel größer, dass er blockiert wird. Aber keine Sorge, du musst lediglich zufällige Verzögerungen einbauen, wenn du dieselbe IP-Adresse für mehrere gleichzeitige oder aufeinanderfolgende Besuche verwendest.

Denke daran: Wende dies an, wenn du denselben Proxy verwendest. Wenn du die IP-Adresse und die Header nach jeder Anfrage änderst, sollte die Verzögerung nicht erforderlich sein. Wenn du dich jedoch mit einer bestimmten IP-Adresse angemeldet hast, solltest du bei dieser bleiben, was bedeutet, dass du auch die Verzögerungen benötigst.

Achte darauf, dass die Zeitintervalle leicht variieren, damit die Verzögerungen zufällig sind. Etwas zwischen 5 und 10 Sekunden sollte gut funktionieren.

10. Wichtige Seiten zwischenspeichern

In manchen Fällen möchtest du Seiten, die du bereits gecrawlt hast, erneut aufrufen, um weitere Informationen zu erhalten. Anstatt dies zu tun, speichere die Seite beim ersten Besuch im Cache, dann hast du alle Daten bereits gespeichert.

Selbst mit dem fortschrittlichsten Web-Scraper besteht immer noch die Möglichkeit, dass der Bot beim ersten Versuch keine Daten abrufen kann, und selbst wenn er es schafft, wäre der Aufwand dennoch umsonst. Lade einfach den gesamten HTML-Code auf einmal herunter, und dann kannst du alle benötigten Informationen aus der gespeicherten Version extrahieren.

Sie können beispielsweise eine Produktseite zwischenspeichern, damit sie jederzeit griffbereit ist. Wenn Sie heute die Produktspezifikationen benötigen, morgen aber vielleicht den Preis wissen möchten, sind die Daten bereits erfasst und warten darauf, verarbeitet zu werden.

Beachte jedoch, dass dies nur für statische Informationen funktioniert! Wenn du Aktienkurse abrufen möchtest, musst du regelmäßig neue Daten abrufen, da die zwischengespeicherte Version schnell veraltet sein wird.

11. Seien Sie beim Einloggen vorsichtig

Die Daten, die du benötigst, könnten hinter einer Anmeldeseite verborgen sein. Dabei fallen mir Social-Media-Plattformen ein. Sicher, du kannst auch ohne Konto ein paar Bruchteile der Inhalte abrufen, aber das ist mühsamer, und vielleicht möchtest du etwas, das nur sichtbar ist, wenn du Teil einer Gruppe oder einer Freundesliste bist. Kurz gesagt: Möglicherweise musst du dich anmelden, und das bringt einige Probleme mit sich.

Alle Website-Nutzer, die über ein Konto verfügen, müssen den Nutzungsbedingungen zustimmen. Diese Bedingungen können eine Klausel enthalten, die ausdrücklich die Verwendung von Bots, automatisierten Tools oder Web-Scrapern untersagt. In diesem Fall würde das Extrahieren von Daten eindeutig gegen die Regeln verstoßen, denen der Nutzer zugestimmt hat.

Ein weiterer Punkt, den man beachten sollte, ist, dass Websites zwar nicht besonders aufmerksam auf nicht registrierte Besucher achten, den von angemeldeten Nutzern gesendeten Cookies jedoch mehr Beachtung schenken. Im Grunde genommen wird Ihr Bot also stärker im Fokus stehen. Durchsichtiges Bot-Verhalten oder verräterische Cookies erhöhen die Wahrscheinlichkeit, dass Ihr Scraper blockiert wird, noch weiter.

Was Sie tun sollten:

  • Lies dir die Nutzungsbedingungen sorgfältig durch und vergewissere dich, dass du nicht gegen sie verstößt.
  • Achte darauf, dass du alle anderen Tipps in diesem Artikel befolgst, insbesondere diejenigen zu Proxys, menschlichem Verhalten, JS-Rendering und Request-Headern.

12. Vermeiden Sie es, Schäden an der Website zu verursachen

Die meisten Webadministratoren mögen es nicht, wenn ihre Websites von Scrapern heimgesucht werden. Für manche sind Bots nur ein kleines Ärgernis, für andere stellen sie eine große Gefahr dar. Tatsache ist, dass Hacker und andere Unruhestifter Bots einsetzen, um Probleme zu verursachen und Schaden anzurichten, beispielsweise indem sie Websites zum Absturz bringen oder versuchen, vertrauliche Daten zu stehlen.

Auch wenn Sie es noch so gut meinen, können Sie versehentlich Probleme verursachen. Eine Flut gleichzeitiger Anfragen könnte den Server zum Absturz bringen. Hier sind daher einige bewährte Vorgehensweisen, damit Sie kein Chaos hinterlassen:

  • Reduzieren Sie die Anzahl der Anfragen, um einen Absturz der gesamten Website zu vermeiden;
  • Lesen Sie die Datei „robots.txt“, in der erläutert wird, welche Aktionen Bots ausführen dürfen. Es handelt sich dabei zwar nicht um ein rechtsverbindliches Dokument, doch gibt es die Wünsche des Website-Betreibers wieder.
  • Achten Sie darauf, wie Sie gesammelte Daten verwenden. Das Übernehmen und Weiterveröffentlichen von Inhalten ist beispielsweise schädlich und rechtswidrig, da diese Inhalte urheberrechtlich geschützt sind.
  • Bitten Sie den Eigentümer nach Möglichkeit um Erlaubnis, Informationen von der Website zu entnehmen.

Durch freundliches und ethisches Handeln kannst du dazu beitragen, dass Bots als das nützliche Werkzeug wahrgenommen werden, das sie sind, und nicht als eine Art digitale Plünderer.

Bonus-Tipp: Wähle das richtige Web-Scraping-Tool

Es gibt keine perfekte Formel für das Web-Scraping, aber es gibt Faktoren, die berücksichtigt werden müssen, um zum richtigen Zeitpunkt die besten Ergebnisse zu erzielen. Dieser Artikel wurde verfasst, um alle Fragen, alle geschriebenen und ungeschriebenen Regeln sowie alle bewährten Vorgehensweisen zu behandeln. Eine API wird den vielen täglichen Scraping-Herausforderungen Abhilfe schaffen, und genau deshalb wird unser erster Tipp immer die Automatisierung sein.

Sammeln Sie clever Daten und genießen Sie die Früchte Ihrer Arbeit mit 1000 Gratisgesprächen von uns!

Zwar beziehen sich einige der oben genannten Tipps auf die Verwendung des Scraping-Tools, doch viele davon lassen sich durch die Software selbst integrieren und automatisieren, sodass Sie sich ganz auf Ihre eigenen Aufgaben und Ziele konzentrieren können. Deshalb sind wir der Meinung, dass die Wahl des richtigen Programms genauso wichtig ist wie alle besprochenen Tipps – wenn nicht sogar noch wichtiger.

Ich bin ehrlich gesagt der Meinung , dass WebScrapingAPI eine hervorragende Wahl ist, zumal man die API im Rahmen eines kostenlosen Tarifs ausprobieren und sich selbst ein Bild davon machen kann, wie sie funktioniert, bevor man Geld investiert.

Wenn Sie sich ein wenig umsehen möchten, haben wir einen umfangreichen Leitfaden mit 20 Web-Scraping-Tools zusammengestellt – schauen Sie doch mal rein!

Über den Autor
Anda Miuțescu, Autorin für technische Inhalte bei WebScrapingAPI
Anda MiuțescuAutor für technische Inhalte

Anda Miuțescu ist Technical Content Writer bei WebScrapingAPI und verfasst verständliche, nützliche Inhalte, die Entwicklern helfen, das Produkt und seine Funktionen besser zu verstehen.

Los geht’s

Sind Sie bereit, Ihre Datenerfassung zu erweitern?

Schließen Sie sich den über 2.000 Unternehmen an, die WebScrapingAPI nutzen, um Webdaten im Unternehmensmaßstab ohne zusätzlichen Infrastrukturaufwand zu extrahieren.