Meisterkurs für dynamisches Scraping
Techniken von Puppeteer-, Playwright- und Selenium-Experten
44:56
advanced
June 25, 2024
Schwierigkeiten mit dynamischen Inhalten und asynchronen Daten beim Web-Scraping? In diesem Webinar gehen wir auf typische Probleme ein, mit denen sich Entwickler konfrontiert sehen. Lernen Sie, praktische Lösungen für Probleme beim dynamischen Web-Scraping zu finden, auf die Entwickler oftmals stoßen. Außerdem erhalten Sie Einblicke in die Skalierung Ihrer Browser-Infrastruktur für groß angelegte Scraping-Vorgänge. Dieses Webinar soll Ihnen bei der Bewältigung dieser Herausforderungen helfen und Ihre Web-Scraping-Fähigkeiten erheblich verbessern.
In diesem 45-minütigen Live-Webinar erfahren Sie, wie Sie
  • mit Ratenbegrenzung und IP-Blockierung umgehen
  • sich ändernde HTML-Locators und -Klassen verwalten
  • in SPAs durch clientseitiges Routing navigieren
  • asynchron geladene Daten verarbeiten
  • Benutzerinteraktionen für verzögertes Laden simulieren
  • auf Daten in Shadow-DOM-Komponenten zugreifen
  • ganzseitige Screenshots dynamischer Inhalte sicherstellen
  • die Browser-Infrastruktur für umfangreiche Sammlungen skalieren
Starten Sie Ihre kostenlose Testversion
Starten Sie Ihre kostenlose Testversion
Speakers
Dario Kondratiuk
Webentwickler und Microsoft MVP
Diego Molina
Technischer Leiter bei Sauce Labs
Greg Gorlen
Full-Stack-Softwareingenieur
Führen Sie groß angelegte Scraping-Tätigkeiten durch? Kontaktieren Sie uns für ein unschlagbares Angebot.
Contact us

Einführung in dynamisches Web-Scraping

Beim Web-Scraping werden Daten aus Websites extrahiert, was bei sich häufig ändernden dynamischen Inhalten eine besondere Herausforderung darstellen kann. Unsere Experten Greg, Dario und Diego geben praktische Tipps zur Bewältigung dieser Herausforderungen mit Tools wie Puppeteer, Selenium und Playwright.

Greg: Greg lebt in San Francisco und ist bei Andela im Bereich traditionelle Softwareentwicklung und Web-Scraping tätig.
Dario: Dario kommt aus Argentinien und arbeitet bei Mabel. Zu seinen Hauptaufgaben gehören die Automatisierung von Qualitätssicherungs-Tools mit geringem Programmieraufwand sowie die Mitarbeit an PuppeteerSharp und der .NET-Version von Playwright.
Diego: Diego stößt aus Valencia, Spanien, zum Team. Als Leiter des Selenium-Projekts ist er außerdem für Open-Source-Projekte bei Sauce Labs, einer Cloud-Testplattform, zuständig.

Wichtige Diskussionspunkte

1. Mit HTML-Änderungen Schritt halten

Greg betonte, welche Bedeutung der Auswahl zuverlässiger Selektoren zukommt. Lange Ketten hartcodierter Selektoren wie div > div > p sollten vermieden werden. Stattdessen sollten stabilere Selektoren wie aria-label oder textbasierte Selektoren eingesetzt werden. Noch besser wäre es, bei Möglichkeit API-Anfragen abzufangen, da diese sich im Gegensatz zu DOMseltener ändern.

Tools und Techniken:

  • Mozilla-Lesbarkeit: Konvertiert komplexes HTML in ein sauberes, lesbares Format.
  • API-Abfangen: Greifen Sie direkt auf Datenendpunkte zu, um DOM-Änderungen zu umgehen.

2. Navigieren in clientseitigem Routing und Single Page Applications (SPAs)

In seinem Vortrag ging Dario auf den Umgang mit SPAs ein, die häufig clientseitiges Routing einsetzen, wodurch die Datenextraktion schwierig wird. Zu den wichtigsten Punkten gehörten:

  • Vorsicht bei Erstladungen: Führen Sie mehrere Überprüfungen durch, um sicherzustellen, dass die Seite vollständig geladen ist.
  • Prüfung des Kontexts: Vergewissern Sie sich, dass Sie sich bei mehrstufigen Prozessen im richtigen Schritt befinden, indem Sie Titel oder andere stabile Elemente überprüfen.
  • Tools: Nutzen Sie die Navigations- und Wartefunktionen von Playwright oder Puppeteer auf effektive Weise.

3. Abrufen asynchron geladener Daten

Diego empfahl die Verwendung von Frameworks, bei denen die Synchronisierung automatisch erfolgt, wie z. B. Selenide für Java oder WebDriverIO für JavaScript. Diese Frameworks vereinfachen das Warten, bis Elemente durch integrierte Methoden geladen sind.

Tipps:

  • Ereignisgesteuerte Prädikate: Nutzen Sie waitForFunction, um auf bestimmte Zustände im DOM zu warten.
  • Abfangen von Anfragen: Erfassen und verarbeiten Sie bei Möglichkeit API-Antworten direkt.

4. Nachahmung von Benutzerinteraktionen für verzögertes Laden

Greg stellte Techniken für den Umgang mit verzögertem Laden vor, bei denen Inhalte geladen werden, während Sie mit der Seite interagieren. Zu den wichtigsten Strategien gehörten:

  • Tastaturinteraktionen: Verwenden Sie die Bild-ab-Taste, um das Laden einzuleiten.
  • Inkrementelle Datenerfassung: Speichern Sie Daten in Blöcken, um bei einem Skriptfehler Datenverluste zu vermeiden.
  • Bei Möglichkeit Benutzerinteraktionen vermeiden: Fangen Sie API-Antworten direkt ab, um Benutzeraktionen zu umgehen.

5. Informationsextraktion aus Shadow-DOM-Komponenten

Dario erklärte, wie man Shadow DOM einsetzt, um Teile der Webseite zu kapseln und das Scrapen zu erschweren. Zu den wichtigsten Punkten gehörten:

  • Open vs. Closed Shadow DOM verstehen: Closed Shadow DOM: Die meisten Tools können ein Open Shadow DOM durchdringen, ein Closed Shadow DOM hingegen nicht.
  • Manuelle JavaScript-Verarbeitung: Verwenden Sie die shadowRoot-Eigenschaft, um manuell auf Elemente innerhalb von Shadow DOM zuzugreifen.
  • Framework-Unterstützung: Tools wie Playwright und Puppeteer verwalten Shadow DOM-Elemente effektiv.

6. Erfassung ganzseitiger Screenshots

Diego empfahl die Verwendung von Firefox zur Erstellung ganzseitiger Screenshots, da es über einen nativen Befehl speziell zu diesem Zweck verfügt. Die Integration von Selenium in das Chrome DevTools-Protokoll ist eine weitere effektive Methode.

Tipps:

  • Netzwerk-Leerlauf: Vergewissern Sie sich, dass vor der Erstellung von Screenshots alle Elemente geladen sind.
  • Einsatz integrierter Methoden: Tools wie die FullPage-Option von Puppeteer vereinfachen den Prozess.

7. Groß angelegte Vorgänge

Jacob erörterte die Herausforderungen bei der Skalierung von Web-Scraping-Vorgängen, wie z. B. die Verwaltung von Fingerabdrücken, die Sitzungsverwaltung und die IP-Adressrotation. Dabei stellte er den Scraping-Browser von Bright Data vor, der diese Komplexitäten abstrahiert und Entwicklern ermöglicht, sich auf das Scripting zu konzentrieren.

Hauptmerkmale:

  • Sitzungsverwaltung: Verwalten Sie Sitzungen automatisch, um einer Entdeckung zu entgehen.
  • IP-Rotation: Verwenden Sie eine Vielzahl von IP-Adressen, mit denen Sie verschiedene Benutzer simulieren können.
  • Testumgebung: Testen Sie Ihre Scripts in einer kontrollierten Umgebung, bevor Sie sie hochskalieren.

Interaktive Fragerunde

Das Webinar endete mit einer Fragerunde, in der die Teilnehmer Fragen zu verschiedenen Aspekten des Web-Scrapings stellten. Zu den wichtigsten Themen gehörten:

  • Abfangen von Frontend-API-Aufrufen: Verwenden Sie die DevTools des Browsers, um API-Anfragen zu identifizieren und zu replizieren.
  • Zuverlässige Selektoren: Vermeiden Sie die Verwendung von XPath und nutzen Sie stattdessen stabilere und zuverlässigere Selektoren.
  • Authentifizierung: Speichern Sie Authentifizierungstoken im Cache und führen Sie bei Bedarf eine manuelle Zwei-Faktor-Authentifizierung durch.

Fazit

In diesem Webinar wurde Entwicklern, die sich mit dynamischem Web-Scraping vertraut machen möchten, umfangreiches Wissen vermittelt. Durch die Nutzung der von Greg, Dario und Diego geteilten Erkenntnisse können Sie Ihre Scraping-Techniken optimieren und Ihre Skripte robuster und leistungsfähiger gestalten. Wer die Live-Sitzung verpasst hat, dem steht in Kürze die Aufzeichnung zur Verfügung. Bleiben Sie also dran, um weitere lehrreiche Inhalte von Bright Data zu erhalten, die Ihnen in den Bereichen Web-Scraping und Datenextraktion zu Höchstleistungen verhelfen.

Viel Spaß beim Scrapen!

The Data You Need
Is Only One Click Away.