Zurück zum Blog
Anleitungen
Gabriel CiociLast updated on Mar 31, 20264 min read

So extrahieren Sie Daten von eBay-Seiten für Preisanalysen

So extrahieren Sie Daten von eBay-Seiten für Preisanalysen

Lassen Sie mich Ihnen ein Beispiel geben. Sie haben gerade Ihren Online-Shop für seltene Retro-Videospielkassetten eröffnet und wissen noch nicht so recht, wie Sie die Preise festlegen sollen.

Die Preisgestaltung für ein Produkt ist immer eine Herausforderung: Ist der Preis zu niedrig, schmälert das die Gewinnspanne. Ist der Preis zu hoch, haben Kunden kein Interesse an dem Produkt und kaufen es bei der Konkurrenz.

Entscheidungen, Entscheidungen. Was können wir tun? Angesichts dieses Problems haben Sie zwei Lösungen:

  • Jeden Tag Stunden damit verbringen, die Preise der Konkurrenz zu recherchieren
  • Gehen Sie clever vor und erstellen Sie ein automatisches Skript, das diese mühsame Aufgabe automatisch für Sie erledigt

Können Sie erraten, für welche Option wir uns in diesem Artikel entscheiden werden? Da Zeit Geld ist und ich mir das Leben gerne so oft wie möglich erleichtern möchte, entscheiden wir uns für die zweite Option.

Wenn Ihnen die erste Option mehr Spaß macht, können Sie diesen Artikel trotzdem lesen. Es ist offensichtlich, dass Sie zu viel Freizeit haben.

Wie das Scraping von eBay Ihrem Online-Shop helfen wird

eBay ist mit einem Marktanteil von 19,7 % der zweitgrößte Online-Marktplatz in den USA. Mit 182 Millionen aktiven Nutzern ist eBay eine der besten Plattformen, die wir für Preisanalysen nutzen können.

In diesem Beispiel werden wir nur den Produktpreis scrapen, aber eBay ist eine wahre Fundgrube an Daten. Sie können jederzeit den Bewertungsbereich scrapen, negative Keywords extrahieren, eine Sentimentanalyse durchführen und herausfinden, warum Kunden mit dem gekauften Produkt unzufrieden sind.

Sie können auch den Bereich „Kunden, die diesen Artikel angesehen haben, haben auch angesehen“ scrapen, um herauszufinden, was Kunden wollen. Sie können diese Informationen nutzen, um neue Produkte in Ihren Shop aufzunehmen oder Rabattpakete mit mehreren Produkten zusammenzustellen. Die Leute werden sie lieben!

So scrapen Sie eBay mit WebScrapingAPI

Eine der größten Hürden beim Web-Scraping ist es, eine Sperrung durch die Website zu vermeiden, an der Sie interessiert sind. Glücklicherweise müssen Sie sich darüber keine Sorgen machen, wenn Sie das richtige Tool haben. In diesem Fall ist WebScrapingAPI aus drei einfachen Gründen die beste Lösung:

  • Wir bieten 1.000 Anfragen pro Monat im kostenlosen Paket an, keine Kreditkarte erforderlich.
  • Die API verfügt über einen Proxy-Pool mit über 100 Millionen rotierenden IP-Adressen, wodurch keine Überschneidungen bei den Anfragen garantiert sind.
  • Sie können die API mit nur einer einzigen Zeile Code integrieren.

Vielleicht fragen Sie sich, warum wir eine Scraping-API nutzen, anstatt unsere eigene zu entwickeln. Der Grund ist ganz einfach: Die Entwicklung eines Scraping-Tools von Grund auf kann mehrere Wochen in Anspruch nehmen.

Das größte Problem ist nicht die Erstellung des Tools selbst, sondern dessen Feinabstimmung, damit Websites es nicht als Bot markieren.

API-Zugriffsschlüssel & Authentifizierung

Gehen Sie auf die Website von WebScrapingAPI und erstellen Sie ein Konto. Sie erhalten einen API-Schlüssel und 1.000 Anfragen kostenlos.

Installiere die Abhängigkeiten

Unser kleines Projekt ist schlank und benötigt nur zwei Abhängigkeiten: axios und cheerio. Axios ist ein Promise-basierter HTTP-Client für Node.JS. Wir verwenden diese Bibliothek, um die WebScrapingAPI aufzurufen. Die zweite Bibliothek, cheerio, ist eine schlanke Implementierung von jQuery für den Server, und wir nutzen sie, um die Produktseite zu parsen. Verwende diesen Befehl, um die Abhängigkeiten zu installieren:

npm install axios cheerio

Das Projekt einrichten

Erstellen Sie eine Datei „index.js“ und fügen Sie den folgenden Code ein:

const cheerio = require('cheerio');
const axios = require('axios');

const api_key = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
const product_url = 'https://www.ebay.com/itm/174620280276?epid=4444&hash=item28a82e05d4:g:UpMAAOSwfY5gYDr6';
const api_url = `https://api.webscrapingapi.com/v1?api_key=${api_key}&url=${encodeURIComponent(product_url)}`;
const hour_in_ms = 1000 * 60 * 60;

let product_price = null;

const check_price = async () => {

	// Scrape the document

	// Parse the document

	// Process the results

	// Check for any price change in one hour
	setTimeout(check_price, hour_in_ms)

}

(async () => check_price())()

Wie du sehen kannst, verwenden wir eine rekursive Funktion mit einem Timeout, um die Produktseite stündlich zu scrapen und auf Preisänderungen zu prüfen.

Die Seite(n) scrapen

Ersetzen Sie // Scrape the document durch diesen Code:

let response;

try {
	response = await axios.get(api_url);
} catch (error) {
	console.log(error);
	process.exit();
}

const $ = cheerio.load(response.data);

Dieser Code nutzt die WebScrapingAPI, um die eBay-Produktseite zu scrapen, und konvertiert die Ergebnisse in eine Cheerio-Instanz.

Überprüfen Sie den Quellcode

Wir haben die gesamte Produktseite gecrawlt, benötigen aber nur den Produktpreis. Wir können die Cheerio-Instanz verwenden, um den Preiswert abzurufen. Der Selektor für den Produktpreis lautet #mainContent [itemprop="price"].

Parse den HTML-Code

Ersetzen // Analysieren Sie das Dokument mit dem folgenden Code:

let price = $('#mainContent [itemprop="price"]').html()

Verarbeiten Sie die Ergebnisse

Der Preis hat folgendes Format: WÄHRUNGSSYMBOL BETRAG. Wir müssen nur den Betrag extrahieren. Ersetze // Verarbeite die Ergebnisse durch diesen Code:

price = parseInt(price
	.split(' ')[1]
	.replace('$', '')
	.replace(' ', '')
	.split(',').join('')
	.split('.')[0])

if(!product_price) {
	console.log(`Initial product price:`, price)
} else {
	if(product_price !== price) {
    		console.log('New price for product:', price)
	}
}

product_price = price

Dieser Code bereinigt den Preis durch folgende Schritte:

  • Entferne die Währung (US)
  • Entferne das Währungssymbol ($)
  • Entferne alle Leerzeichen ( )
  • Entferne Kommas aus der Zahl
  • Entfernen der Dezimalstellen

Sobald der Preis analysiert wurde, protokollieren wir den ursprünglichen Preis oder den neuen Preis, falls sich dieser zwischen den Scraping-Sitzungen geändert hat.

Fazit

Mit wenigen Zeilen Code und einem fantastischen Tool wie WebScrapingAPI ist es uns gelungen, ein Skript zu erstellen, das den Preis jedes beliebigen Produkts von eBay abruft. Von hier aus sind der Fantasie keine Grenzen gesetzt. Sie können das Skript auf die nächste Stufe heben und die folgenden Verbesserungen implementieren:

  • Den Produkttitel scrapen, um die Preisklassifizierung zu vereinfachen
  • Mehrere Produkte scrapen und die Preise vergleichen
  • Eine andere eBay-Website (wie ebay.de oder ebay.ca) scrapen und den Preis für dasselbe Produkt vergleichen
  • Drehen Sie den Spieß um, scrapen Sie die Amazon-Produktseite und vergleichen Sie die Preise für dasselbe Produkt auf beiden Seiten
  • E-Mail-Benachrichtigungen implementieren; dazu sollten Sie nodemailer verwenden
  • Implementieren Sie Slack-Benachrichtigungen; Sie können diese Bibliothek verwenden, um die Aufgabe zu erledigen

Das Beste an dieser praktischen Lösung für einen realen Anwendungsfall ist, dass Sie all dies tun können, ohne Geld oder wertvolle Zeit zu investieren. Denn WebScrapingAPI bietet eine zweiwöchige kostenlose Testversion, mit der Sie alle Funktionen kostenlos nutzen können!

Über den Autor
Gabriel Cioci, Full-Stack-Entwickler @ WebScrapingAPI
Gabriel CiociFull-Stack-Entwickler

Gabriel Cioci ist Full-Stack-Entwickler bei WebScrapingAPI und verantwortlich für die Entwicklung und Wartung der Websites, des Benutzerportals sowie der wichtigsten benutzerseitigen Komponenten der Plattform.

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.