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 cheerioDas 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!




