In diesem Tutorial konzentrieren wir uns auf Dramatiker Web Scraping. Was ist also Playwright? Es ist ein praktisches Framework, das von Microsoft entwickelt wurde. Es ist dafür bekannt, Webinteraktionen effizienter zu gestalten und funktioniert zuverlässig mit allen aktuellen Browsern wie WebKit, Chromium und Firefox. Sie können auch Tests im Headless- oder Headed-Modus ausführen und native mobile Umgebungen wie Google Chrome für Android und Mobile Safari emulieren.
Playwright startete seine Reise im Januar 2020 und wächst seitdem stetig. Im März 2024 wird es jede Woche etwa 4 Millionen Mal heruntergeladen. Große Namen wie Adobe Spectrum und Visual Studio Code verwenden es bereits für ihre Projekte. In diesem Jahr wird Playwright beliebter denn je.
In diesem Tutorial zeigen wir Ihnen Schritt für Schritt, wie Sie Playwright für Web Scraping verwenden in Node.js. Wir zeigen auch Crawlbase für einen anderen Ansatz zum Abrufen von Daten aus dem Web. Egal, ob Sie ein erfahrener Entwickler oder ein Neuling im Web Scraping sind, dieses Tutorial verspricht, Sie mit den notwendigen Fähigkeiten für den Erfolg auszustatten. Lassen Sie uns beginnen.
Inhaltsverzeichnis
3. So führen Sie Web Scraping mit Playwright durch
4. Originalpreis mit Playwright ermitteln
5. Mit Playwright den reduzierten Preis streichen
6. Scraping von Produkt-Thumbnails mit Playwright
7. Scraping von Produktbewertungen mit Playwright
8. Scraping der Anzahl von Produktbewertungen mit Playwright
9. Scraping von Produktbewertungen mit Playwright
10. Codekompilierung und -ausführung für Playwright Scraping
11. Scraper mit Crawlbase Crawling API und Cheerio
1. Blog-Umfang
Unser Ziel für dieses Tutorial ist es, zu crawlen und kratzen Backmarket.com, insbesondere fehlen uns die Worte. URL und extrahieren Sie wichtige Informationen wie den Produkttitel, den Originalpreis, den ermäßigten Preis, die URL des Miniaturbilds, Bewertungen, die Anzahl der Rezensionen und einzelne Rezensionen.
Wir bieten für dieses Tutorial zwei verschiedene Ansätze an:
Dramatiker-Methode: Zunächst verwenden wir das Playwright-Framework, um relevante Daten aus unserer Ziel-URL zu extrahieren. Wir geben Ihnen Schritt-für-Schritt-Anleitungen, vom Einrichten Ihrer Codierungsumgebung für Playwright über das Parsen des HTML-Inhalts der Seite bis hin zum Ausdrucken der Ergebnisse in einem leicht verständlichen JSON-Format, das für weitere Analysen verwendet werden kann.
Crawlbase Crawling API Anleitung: Als nächstes nutzen wir die Crawling API von Crawlbase, um Daten von derselben Produktseite zu crawlen und zu scrapen. Wir werden eine GET-Anfrage an die Ziel-URL senden, um den HTML-Inhalt zu extrahieren, ohne blockiert zu werden, und dann den Inhalt mit Cheerio analysieren. Der analysierte Inhalt wird auch in einem lesbaren JSON-Format gedruckt.
Durch die Erkundung dieser Ansätze erhalten Sie ein tieferes Verständnis verschiedener Techniken zum Web Scraping und lernen, wie Sie Ihre Scraping-Strategie basierend auf den Anforderungen Ihres Projekts anpassen können.
2. Voraussetzungen
Nachdem wir unsere Ziele festgelegt haben, können wir mit der Einrichtung unserer Umgebung für die Codierung beginnen. Wir müssen sicherstellen, dass alle erforderlichen Grundlagen vorhanden sind. Folgendes benötigen Sie für den Anfang:
Auf Ihrem System installiertes Node.js: Node.js dient als Laufzeitumgebung und ermöglicht die Ausführung von JavaScript auf Ihrem lokalen Computer. Dies ist wichtig für die Ausführung des Web Scraping-Skripts, das wir gerade entwickeln.
Um die Umgebung zu installieren, laden Sie einfach Node.js von der offiziellen Website herunter: Offizielle Node.js-Website.
Grundlegende Kenntnisse in JavaScript: Da wir in unserem Web Scraping-Projekt viel JavaScript verwenden werden, ist es wichtig, die Grundlagen der Sprache zu kennen. Sie sollten mit Konzepten wie Variablen, Funktionen, Schleifen und grundlegender DOM-Manipulation vertraut sein.
Wenn Sie neu bei JavaScript sind, können Sie sich mit Tutorials oder Dokumentationen befassen, die auf Plattformen wie Mozilla-Entwickler-Netzwerk (MDN) oder W3Schools.
Crawlbase API-Token: Im zweiten Teil dieses Tutorials nutzen wir die Crawlbase-API für effizienteres Web Scraping. Das API-Token dient als Schlüssel zur Authentifizierung von Anfragen und zur Ausschöpfung des vollen Potenzials der Crawling APIWir verwenden die Crawlbase JavaScript-Token um echte Browseranfragen zu simulieren.
Um Ihr Token zu erhalten, gehen Sie zur Crawlbase-Website. Konto erstellenund greifen Sie auf Ihre API-Tokens über den Kontodokumentation .
3. So führen Sie Web Scraping mit Playwright durch
Sobald Sie Node.js installiert haben, öffnen Sie Ihre Eingabeaufforderung (Windows) oder Ihr Terminal (macOS/Linux).
Erstellen Sie ein Verzeichnis zum Speichern Ihres Playwright-Scraper-Codes, indem Sie die folgenden Befehle ausführen:
1 | mkdir Dramatiker-Schaber |
Installieren Sie jetzt Playwright mit dem folgenden Befehl:
1 | npm installiere Dramatiker |
Importieren Sie die Bibliothek und erstellen Sie eine Funktion zum Scrapen des Titels:
Sobald Sie die erforderlichen Pakete installiert haben, können wir mit dem Codieren beginnen. Beginnen Sie mit dem Importieren der erforderlichen Module wie Chromium aus der Playwright-Bibliothek zur Automatisierung des Browsers und fs für die Dateisystemvorgänge. Dies sind die wichtigsten Module zum Ausführen von Web Scraping und zum Verarbeiten von Dateivorgängen innerhalb der Node.js-Umgebung.
Der Einfachheit halber können Sie den folgenden Code kopieren und in Ihre index.js-Datei einfügen.
1 | // Benötigte Module importieren |
Schabvorgang: Die Funktion scrapeResults ist so definiert, dass sie Ergebnisse von einer angegebenen Web-URL abruft. Innerhalb dieser Funktion:
- Es startet eine neue Instanz des Chromium-Browsers mit
chromium.launch({ headless: false })
, der Browser sollte im Nicht-Headless-Modus (sichtbare Benutzeroberfläche) ausgeführt werden. - Es erstellt einen neuen Browserkontext und eine neue Seite unter Verwendung
browser.newContext()
undcontext.newPage()
. Dadurch wird die Umgebung für die Navigation zu und die Interaktion mit Webseiten vorbereitet. - Es navigiert zur angegebenen Web-URL unter Verwendung
page.goto(webUrl)
. Dadurch wird der Browser angewiesen, die angegebene URL zu laden. - Es extrahiert den Titel des Produkts von der Seite mithilfe von
page.$eval("h1", ...)
, das den ersten<h1>
Element auf der Seite und ruft dessen Textinhalt ab. Die Funktion ?.textContent.trim() stellt sicher, dass führende und nachfolgende Leerzeichen aus dem extrahierten Text entfernt werden.
4. Originalpreis mit Playwright ermitteln
Um den Originalpreis von der Zielwebseite zu extrahieren, besuchen Sie zunächst die angegebene URL in Ihrem Webbrowser. Klicken Sie anschließend mit der rechten Maustaste auf das ursprüngliche Preiselement und wählen Sie „Untersuchen“, um auf die Entwicklertools zuzugreifen, die den entsprechenden HTML-Code hervorheben.
Identifizieren Sie das HTML-Element, das den ursprünglichen Preis darstellt, und stellen Sie die Eindeutigkeit sicher, indem Sie seine Attribute, Klassen oder IDs untersuchen. Kopieren Sie nach der Identifizierung den CSS-Selektor des Elements und überprüfen Sie seine Genauigkeit in einem Text- oder Code-Editor. Nehmen Sie alle erforderlichen Anpassungen vor, um das ursprüngliche Preiselement genau anzusprechen.
1 | // Funktion zum Abrufen des Textinhalts eines Elements per Selektor |
Funktionsdefinition (getValueBySelector):
- Dieser Code definiert eine asynchrone Funktion namens getValueBySelector, die einen CSS-Selektor als Parameter verwendet.
- Innerhalb der Funktion verwendet es
page.evaluate()
von Playwright, um JavaScript-Code im Kontext der aktuellen Seite auszuführen. - Der darin enthaltene JavaScript-Code
page.evaluate()
wählt mithilfe von document.querySelector(selector) ein HTML-Element basierend auf dem bereitgestellten CSS-Selektor aus. - Anschließend greift es auf die Eigenschaft „textContent“ des ausgewählten Elements zu, um dessen Textinhalt abzurufen, und wendet die Methode „trimm()“ an, um alle führenden oder nachfolgenden Leerzeichen zu entfernen.
- Die Funktion gibt den zugeschnittenen Textinhalt des ausgewählten Elements zurück.
Originalpreis ermitteln:
- Nach der Definition der Funktion getValueBySelector wird diese mit einem bestimmten CSS-Selektor aufgerufen
('[data-popper-trigger="true"].body-1-light-striked')
um ein bestimmtes Element auf der Seite anzusprechen. - Das Ergebnis, das den ursprünglichen Preis eines Produkts darstellt, wird der Variablen zugewiesen.
originalPrice
.
5. Mit Playwright den reduzierten Preis streichen
Klicken Sie erneut mit der rechten Maustaste auf das ursprüngliche Preiselement und wählen Sie „Untersuchen“, um auf die Entwicklertools zuzugreifen, wodurch der zugehörige HTML-Code hervorgehoben wird.
Sobald Sie den richtigen CSS-Selektor haben, können Sie den Code wie unten gezeigt schreiben:
1 | // Ermäßigten Preis des Produkts extrahieren |
Dieser Code extrahiert den reduzierten Preis eines Produkts von unserer Zielwebseite. Er verwendet wahrscheinlich getValueBySelector()
um das Element auszuwählen, das den ermäßigten Preis basierend auf seinem Attribut anzeigt. Sobald der ermäßigte Preis gefunden wurde, wird er in der Variablen gespeichert discountedPrice
zur Weiterverarbeitung.
6. Scraping von Produkt-Thumbnails mit Playwright
Klicken Sie ähnlich wie bei den vorherigen Schritten mit der rechten Maustaste auf das Miniaturbild des Produkts und wählen Sie „Untersuchen“, um die Entwicklertools zu öffnen. Diese Aktion hebt den entsprechenden HTML-Code für das Miniaturbild hervor.
Um den Code zum Extrahieren der URL des Miniaturbilds mit Playwright zu schreiben, können Sie den folgenden Ansatz verwenden:
1 | // URL des Miniaturbilds extrahieren |
Dieser Code extrahiert die URL eines Miniaturbildes aus einer Webseite. Wir verwenden page.evaluate()
Funktion zum Ausführen von JavaScript-Code im Kontext der Webseite. Sie wählt das Bildelement innerhalb eines Div mit bestimmten Attributen aus und ruft dessen src
Attribut, das die Bild-URL enthält. Die extrahierte URL wird dann in der Variable gespeichert thumbnail
zur weiteren Verwendung.
7. Scraping von Produktbewertungen mit Playwright
Sie wissen inzwischen, wie es geht. Klicken Sie mit der rechten Maustaste auf die Produktbewertungen und wählen Sie „Untersuchen“, um die Entwicklertools zu öffnen. Mit dieser Aktion können Sie den HTML-Code des ausgewählten Elements anzeigen.
Hier ist der Codeausschnitt zum Extrahieren der Bewertungen des Produkts:
1 | // Bewertungen des Produkts extrahieren |
8. Scraping der Anzahl von Produktbewertungen mit Playwright
Auch hier verwenden Sie die getValueBySelector
um die Anzahl der Bewertungen für das Produkt zu extrahieren. Übergeben Sie den CSS-Selektor, um das Element auszuwählen, das die Anzahl der Bewertungen basierend auf seinem Attribut anzeigt. Sobald der Zählwert gefunden wurde, speichern Sie ihn in der Variablen reviewsCount
zur weiteren Verwendung.
1 | // Anzahl der Bewertungen des Produkts extrahieren |
9. Scraping von Produktbewertungen mit Playwright
Zuletzt werden wir die Bewertungen des Produkts aussortieren. Holen Sie sich den zugehörigen HTML-Code wie unten gezeigt:
Alle Überprüfungselemente auswählen: Verwenden Sie die document.querySelectorAll()
um alle Listenelemente auszuwählen, die Bewertungen enthalten. Speichern Sie sie in einer Variablen namens reviewElements
.
Karte über jedes Bewertungselement: Verwenden Sie die map()
um jedes Überprüfungselement zu durchlaufen in reviewElements
. In der map()
Funktion: Extrahieren Sie relevante Informationen wie den Namen des Autors, die URL der Rezension, Bewertungen und den Rezensionstext.
Name des Auszugautors: Verwenden Sie die querySelector()
um das Element mit der Klasse zu finden .body-1-bold
innerhalb des aktuellen Überprüfungselements. Extrahieren Sie den Textinhalt und entfernen Sie alle führenden oder nachfolgenden Leerzeichen.
URL der Rezension extrahieren: Verwenden Sie die querySelector()
um den Anker zu finden (<a>
) Element mit dem Attribut rel
auf „noreferrer noopener“ gesetzt. Holen Sie sich den Wert des href-Attributs und stellen Sie ihm die Basis-URL voran https://www.backmarket.com/
. Dadurch erhalten Sie die vollständige URL der Rezension.
Auszug Bewertungen: Verwenden Sie die querySelector()
um das Element mit dem Attribut zu finden data-qa
auf „Benutzerkommentar“ eingestellt. Extrahieren Sie den Textinhalt und entfernen Sie alle führenden oder nachfolgenden Leerzeichen.
Auszug aus dem Rezensionstext: Verwenden Sie die querySelector()
um das Element mit den Klassen zu finden .body-1-light
, .text-grey-500
und .whitespace-pre-line
. Extrahieren Sie den Textinhalt und entfernen Sie alle führenden oder nachfolgenden Leerzeichen.
Extrahierte Informationen zurückgeben: Gibt ein Objekt zurück, das die extrahierten Informationen für jedes Überprüfungselement enthält.
Bewertungen herausfiltern: Verwenden Sie die filter()
um alle Rezensionen zu entfernen, bei denen entweder der Name des Autors oder der Rezensionstext fehlt.
So können Sie den Code schreiben:
1 | const Bewertungen = – warten auf Sie! bewerten(() => { |
10. Codekompilierung und -ausführung für Playwright Scraping
Da wir nun die Codeausschnitte für jedes Element haben, das wir von backmarket.com extrahieren möchten, kompilieren wir sie und speichern sie als index.js
.
1 | // Benötigte Module importieren |
Öffnen Sie Ihr Terminal oder Ihre Eingabeaufforderung und navigieren Sie zu dem Verzeichnis, in dem index.js gespeichert ist. Führen Sie das Skript aus, indem Sie den folgenden Befehl ausführen:
1 | Knoten index.js |
Überprüfen Sie nach dem Ausführen des Skripts die Ausgabe. Bei erfolgreichem Abschluss sollten die extrahierten Daten auf der Konsole angezeigt oder in einer Datei gespeichert werden, je nachdem, wie Sie den Code implementiert haben.
1 | { |
11. Scraper mit Crawlbase Crawling API und Cheerio
Scraping mit Crawlbase Crawling API und Cheerio ist für dieses Tutorial relevant, da es einen alternativen Ansatz zum Web Scraping bietet. Diese Methode ist eine der besten Alternativen, da sie die Crawlbase nutzt Crawling API, wodurch mögliche Sperren und CAPTCHAs durch die Zielwebsite vermieden werden können.
Zusätzlich wird die Crawlbase integriert Crawling API mit Parsern wie Cheerio bietet eine stabilere Lösung zum Extrahieren von Daten aus Webseiten, ohne auf die bei herkömmlichen Scraping-Methoden häufig auftretenden Probleme zu stoßen, wie Blockierungen oder starke Ratenbegrenzungen. Diese Methode stellt sicher, dass wir die gewünschten Informationen zuverlässig und effektiv von einer Website abrufen können.
Installieren Sie zunächst einfach die folgenden Pakete:
1 | mkdir Schaber |
Diese Befehle erstellen ein Verzeichnis namens scraper
, Erstelle ein index.js
Datei und installieren Sie die Bibliotheken Crawlbase und Cheerio.
Jetzt werden wir einen ähnlichen Ansatz wie bei Playwright anwenden. Dieses Mal verwenden wir jedoch eine HTTP/HTTPs-Anfrage an die Crawling API um den HTML-Code der Seite zu erhalten. Anschließend verwenden wir Cheerio, um dieselben Datensätze aus diesem HTML-Code zu extrahieren.
1 | // Crawlbase importieren Crawling API Paket |
Nachdem Sie den obigen Code gespeichert haben, navigieren Sie zu dem Verzeichnis, in dem index.js
wird in Ihrem Terminal oder in der Eingabeaufforderung gespeichert. Führen Sie das Skript aus, indem Sie node index.js
.
Überprüfen Sie anschließend die Ausgabe. Bei Erfolg werden die extrahierten Daten wie unten dargestellt ausgedruckt:
1 | { |
12. Fazit
Zusammenfassend hat dieses Tutorial zwei effektive Methoden zum Scraping von Daten von backmarket.com mit Node.js demonstriert. Wir haben die Verwendung von Playwright untersucht und gezeigt, wie bestimmte Informationen aus einer Website extrahiert werden können. Außerdem haben wir einen alternativen Ansatz vorgestellt, bei dem Crawling API mit Cheerio, bietet eine Lösung für Captchas umgehen und potenzielle Blockaden bei gleichzeitiger effizienter Analyse von HTML-Inhalten.
Die Wahl zwischen Dramatiker und Crawling API mit Cheerio hängt stark davon ab, was Sie für Ihr Projekt benötigen. Playwright bietet eine robuste Lösung für dynamisches Web Scraping und die Interaktion mit modernen Webanwendungen, während die Crawling API mit Cheerio bietet eine zuverlässige Methode für den Zugriff auf und die Analyse von HTML-Inhalten.
Wählen Sie also aus, was am besten zu Ihrem Projekt passt. Vergessen Sie nicht, dass der Code, den wir hier freigegeben haben, für Sie kostenlos ist. Sie können ihn auch gerne verwenden, um Daten von anderen Websites zu extrahieren!
Wenn Sie an anderen Scraping-Projekten interessiert sind, empfehlen wir Ihnen, sich die folgenden Tutorials anzusehen:
So scrapen Sie TikTok-Kommentare
So scrapen Sie Crunchbase-Unternehmensdaten
So scrapen Sie Websites mit ChatGPT
13. Häufig gestellte Fragen
F: Kann Playwright zum Scraping verwendet werden?
A. Ja. Um Websites mit Playwright zu scrapen, können Sie diese allgemeinen Schritte befolgen:
Schritt 1: Playwright installieren: Beginnen Sie mit der Installation von Playwright über npm mit dem Befehl „npm install playwright“.
Schritt 2: Schreiben Sie Ihr Skript: Erstellen Sie eine JavaScript-Datei (z. B. scrape.js) und schreiben Sie den Code, um Ihre Scraping-Aufgaben mit Playwright zu automatisieren. Dies kann das Navigieren zur Website, die Interaktion mit Elementen und das Extrahieren von Daten umfassen.
Schritt 3: Führen Sie Ihr Skript aus: Führen Sie Ihr Skript aus, indem Sie node scrape.js in Ihrem Terminal oder in der Eingabeaufforderung ausführen.
Schritt 4: Ausgabe prüfen: Überprüfen Sie nach dem Ausführen des Skripts die Ausgabe, um sicherzustellen, dass die gewünschten Daten erfolgreich extrahiert wurden.
Schritt 5: Verfeinern Sie Ihr Skript: Verfeinern Sie Ihr Skript nach Bedarf, um alle Sonderfälle oder Fehler zu behandeln, die während des Scraping-Prozesses auftreten können.
F: Ist Playwright einfacher als Selenium?
In Bezug auf die Benutzerfreundlichkeit wird Playwright im Vergleich zu Selenium oft als benutzerfreundlicher angesehen. Playwright bietet eine einfachere und modernere Benutzeroberfläche zur Automatisierung von Browserinteraktionen. Es verfügt über Funktionen wie die automatische Installation von Browsertreibern und integrierte Unterstützung für mehrere Programmiersprachen.
Selenium hingegen gibt es schon länger und verfügt über eine größere Community und ein größeres Ökosystem. Es wird häufig verwendet und verfügt über umfangreiche Dokumentation und Ressourcen.
Kurz gesagt, die Wahl zwischen Playwright und Selenium hängt von Faktoren wie den spezifischen Anforderungen Ihres Projekts, den Teampräferenzen und der vorhandenen Infrastruktur ab.
F: Können Sie blockiert werden, wenn Sie mit Playwright eine Website scrapen?
Ja, es ist möglich, dass Sie blockiert werden, wenn Sie mit Playwright eine Website scrapen. Websites können Maßnahmen ergreifen, um automatisierte Scraping-Aktivitäten zu erkennen und zu blockieren, z. B. das Erkennen ungewöhnlicher Verkehrsmuster oder hochfrequenter Anfragen von derselben IP-Adresse.
Um Blockaden und CAPTCHAs zu vermeiden, empfehlen wir die Verwendung von Crawlbase. Durch die Integration Ihres Codes in die Crawlbase-API können Sie von deren Funktionen profitieren, einschließlich der Verwendung von Millionen rotierender IPs und eines KI-basierten Algorithmus zur Nachahmung menschlicher Interaktion. Dies trägt dazu bei, das Risiko einer Entdeckung zu verringern und sorgt für reibungslosere Scraping-Vorgänge.