EN DE UK RU
Email

Amazon kostenlos scrapen

KAVUNKA
Private Suchmaschine / Leistungsstarke Crawler / Schnelles WEB Scraping
Kostenlos testen
In diesem Tutorial zeige ich, wie man Produktdaten von Amazon erhält. Bevor eine Website geparst wird, sollte geprüft werden, welche Daten wir erhalten, wenn wir eine Anfrage mit curl senden. Warum ist das notwendig:
  • JavaScript Rendering reduziert die Scan-Geschwindigkeit deutlich;
  • es erzeugt zusätzliche Last auf dem Server;
  • das Scannen erfolgt in einem Thread.
Prüfen wir Amazon anhand eines Beispiels https://www.amazon.com/TP-Link-AC1750-Smart...
curl -A " Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:80.0) Gecko/20100101 Firefox/80.0" https://www.amazon.com/TP-Link-AC1750-Smart-WiFi-Router/dp/B079JD7F7G/

Als Ergebnis erhalten wir eine HTML-Seite mit dem <title> "Sorry! Something went wrong!". Es sieht so aus, als kämen wir ohne JavaScript Rendering nicht aus.

Was ist JavaScript Rendering?

JavaScript ist eine Programmiersprache zur Manipulation von Elementen einer Webseite, das heißt, in JavaScript geschriebene Skripte können Daten über AJAX aus Drittquellen in Objekte laden. Rendering bedeutet das Anzeigen und Zeichnen von Informationen im Browser. JavaScript Rendering ermöglicht daher, den vollständigen HTML-Code einer Seite mit Produktbeschreibung und Fotos zu erhalten.
Um Daten von Amazon erfolgreich zu erhalten, müssen wir einen Browser verwenden, der JavaScript-Skripte verarbeitet. Es stellt sich die Frage: Wie lässt man einen Browser (Firefox, Chrome oder Opera) automatisch arbeiten? Dafür gibt es die Technologie Selenium WebDriver. Wenn Sie die Kavunka-Suchmaschine für Scraping verwenden, werden Selenium WebDriver und der Firefox-Browser während der Bereitstellung der Suchmaschine auf dem Server installiert.
Sehen wir uns nun die Felder an, die wir in diesem Beispiel parsen:
  • NAME - Produktname
  • BRAND - Markenname
  • CAT - Kategorie, zu der das Produkt gehört
  • CATURL - URL-Adresse der Kategorie
  • IMG - Hauptbild des Produkts
  • AIMGS - zusätzliche Bilder
  • PRICE - Preis
  • RATING - Bewertung (Sterne)
  • DSCR - Produktbeschreibung
Als Nächstes müssen wir für jedes Feld reguläre Ausdrücke erstellen. Zum Erstellen und Testen regulärer Ausdrücke können Sie diese Seite nutzen oder im Control Panel der Kavunka-Suchmaschine zum Tab TESTER gehen. Für die schnelle Erstellung regulärer Ausdrücke verwenden wir den "Regular expressions designer". Drücken Sie und es öffnet sich ein Dialog mit auszufüllenden Feldern.
Beginnen wir mit NAME (Produktname). Im Browser sehen wir, dass das Produkt "TP-Link AC1750 Smart WiFi Router (Archer A7) -Dual Band Gigabit Wireless Internet Router for Home, Works with Alexa, VPN Server, Parental Control, QoS" heißt.
Drücken Sie im Browser Ctrl + A, dann die linke Maustaste und "View Selection Source". Warum wählen wir den Text aus und wählen dann "View Selection Source", obwohl man auch einfach den Quellcode der Seite ansehen könnte? Damit JavaScript Rendering ausgeführt wird und uns den vollständigen HTML-Code der Seite liefert. Danach drücken Sie Ctrl + F und suchen den Namen unseres Produkts im Code.
Wie wir sehen, befindet sich der benötigte Text zwischen den Tags <h1 und </h1>. Kehren Sie zur Template-Bearbeitungsseite zurück und füllen Sie die Felder "Before search text" und "After search text" aus, aktivieren Sie "Enable line breaks" und "Shortest match" und klicken Sie OK. Als Ergebnis erhalten wir den regulären Ausdruck:
(?<=<h1)[\w\W]*?(?=<\/h1>)

Dasselbe machen wir für die übrigen Felder

BRAND
Step 1:
(?<=Brand</span>)[\w\W]*?(?=<\/span>)
Es ist erwähnenswert, dass nicht alle Felder mit einem einzigen regulären Ausdruck abgerufen werden können. Dafür gibt es steps. Im ersten Schritt erhalten wir einen Teil des HTML-Codes, auf den wir die regulären Ausdrücke aus Step 2 anwenden. Wenn wir den benötigten Text im zweiten Schritt noch nicht erhalten, verwenden wir Step 3.

CAT
Step 1:
(?<=<li\ class="a\-breadcrumb\-divider">)[\w\W]*?(?=<\/ul>)
Step 2:
(?<=<li><span\ class="a\-list\-item">)

CATURL
Step 1:
(?<=<li\ class="a\-breadcrumb\-divider">)[\w\W]*?(?=<\/ul>)
Step 2:
(?<=<li><span\ class="a\-list\-item">)[\w\W]*?(?=<\/a>)
Step 3:
(?<=href=").*?(?=")

IMG
Step 1:
(?<='colorImages':).*(?=\}\,)
Step 2:
(?<="large":").*?(?=")

AIMGS
Step 1:
(?<="main":).*?(?=\,"variant":)
Step 2:
(?<=").*?(?=":)
Auf verschiedenen Amazon-Seiten befindet sich der Preis an unterschiedlichen Stellen. Deshalb erstellen wir zwei Varianten des regulären Ausdrucks und setzen das "or"-Zeichen dazwischen.

PRICE
Step 1:
(?<=?<span\ id="priceblock_ourprice").*?(?=?<\/span>)|(?<=id="priceblock_dealprice").*?(?=?<\/span>)

DSCR
Step 1:
(?<=<div\ id="productDescription")[\w\W]*?(?=<style)
Step 2:
(?<=<p>)[\w\W]*?(?=<\/p>)

Scan-Einstellungen

  • Using Selenium Yes/No (Selenium verwenden oder nicht; wählen Sie "Yes")
  • Delay (sec.) 3 (der Browser benötigt eine Verzögerung, um alle JavaScript-Skripte auszuführen und den vollständigen HTML-Code zu liefern)
  • Parse Everything Yes/No (hier lassen wir "No"; dadurch speichern wir keine Seiten mit nicht eindeutigem Text)
  • Min. "gf" 8 (Anzahl der erhaltenen Felder; wenn der Crawler nicht genügend gute Felder erhält, ignoriert er diese Seite)
  • Priority Anchors (wenn der Crawler Links mit bestimmten Anchors findet, markiert er sie als Priorität)
  • Priority URLs (ähnlich wie "Priority Anchors", aber hier betrachtet der Crawler Teile der URLs)
  • URL Filtering (damit der Crawler keine Zeit mit unnötigen Seiten verschwendet, können wir Merkmale dieser Seiten angeben)
Für Websites, die eine Sitzung erfordern, müssen Sie sich in unserem Browser anmelden, die Cookies der gewünschten Website kopieren und in die entsprechende Zeile einfügen.

Crawling und Parsing

Speichern Sie das Template und wechseln Sie zum Tab "TASKS". Fügen Sie eine Aufgabe für Octopus hinzu (Startseite angeben, das erstellte Template auswählen und festlegen, wie viele Seiten der Crawler besuchen soll). Fügen Sie eine Aufgabe für Worder und Kavunka hinzu, drücken Sie "Start" und trinken Sie in Ruhe Tee mit Keksen.

Aktuelle DATA erhalten

Nach dem Tee kehren wir zu "WEBSITES" zurück, finden amazon.com, klicken auf "DATA" und erhalten die Daten. Ich möchte anmerken, dass Amazon beim Parsing recht tolerant ist! Ich konnte mehr als 2000 Seiten ohne Proxy abrufen :). Mit der Kavunka-Software können Sie kostenlos große Datenmengen zu Amazon-Produkten erhalten.