eBay-Suchergebnisse als JSON scrapen mit dem eBay-Search-Plugin
eBay ist einer der größten strukturierten Datensätze mit realen Preisen im Internet. Zu jedem Produkt, das dir einfällt, gibt es Live-Angebote mit einem Preis, einem Zustand, einer Verkäuferbewertung und Versandkosten. Diese Daten sind Gold wert für Preisüberwachung, Wiederverkaufs-Arbitrage, Marktforschung und den Bau von “Was ist das wert”-Tools. Der schwierige Teil war schon immer, sie herauszubekommen.
eBay von Hand zu scrapen bedeutet, sich mit einer JavaScript-lastigen Suchseite herumzuschlagen, IPs zu rotieren, um Sperren zu vermeiden, und Selektoren zu schreiben, die brechen, sobald eBay das Layout ändert. Und das noch bevor du dich damit befasst, dass eBay 19 regionale Marktplätze betreibt, jeder mit eigener Domain, Währung und eigenen Eigenheiten.
Das neue eBay-Search-Plugin nimmt dir diese ganze Ebene ab. Du schickst ein Stichwort und erhältst ein sauberes JSON-Array mit Angeboten zurück. Dieser Beitrag erklärt, was das Plugin zurückgibt, wie du es aufrufst, wie du Ergebnisse filterst und sortierst und wie du etwas Nützliches darauf aufbaust.
Was das eBay-Search-Plugin macht
Das Plugin nimmt ein Suchstichwort - genau das, was du in das eBay-Suchfeld eingeben würdest, etwa mechanische Tastatur oder Vintage Omega Uhr - und gibt die Ergebnisseite als strukturiertes JSON zurück. Kein HTML-Parsing, kein Headless-Browser, keine Proxy-Rotation auf deiner Seite.
Es funktioniert über alle 19 regionalen Marktplätze, von ebay.com in den USA bis ebay.com.au in Australien, sodass du dasselbe Produkt mit demselben Aufruf über Länder und Währungen hinweg vergleichen kannst.
Für jedes Angebot in den Ergebnissen bekommst du Felder wie:
title- der Angebotstitelprice- der numerische Preis, plus ein separatercurrency-Codecondition- der lesbare Zustand, mit einem normalisiertenconditionCodeseller- der Verkäufer-Benutzername und seine Bewertungspunktzahlshipping- die Versandkosten (oder dass der Versand kostenlos ist)sold,watchers,bids- Nachfragesignale zum Angebotimage- die URL des Angebots-Thumbnailsurl- eine saubere, kanonische Artikel-URL
Da der numerische price und der conditionCode normalisiert sind, kannst du die Ergebnisse direkt sortieren, filtern und aggregieren, ohne Zeichenketten wie “1.299,99 €” zu parsen oder raten zu müssen, was “Gebraucht - Ausgezeichnet” bedeutet.
Die Anfrage
Der Endpunkt ist ein einzelner POST-Aufruf an /marketplace/ebay-search. Der einzige Pflichtparameter ist dein Stichwort. Die Authentifizierung erfolgt über einen Header, x-scrapeunblocker-key, mit deinem API-Schlüssel.
Hier der einfachstmögliche Aufruf mit curl:
curl -X POST "https://api.scrapeunblocker.com/marketplace/ebay-search" \
-H "x-scrapeunblocker-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "mechanische Tastatur", "domain": "ebay.com"}'
Über den Parameter domain wählst du einen regionalen Marktplatz. Lass ihn auf ebay.com für die USA oder setze ihn auf ebay.co.uk, ebay.de, ebay.com.au usw., um in einem anderen Land zu suchen. Die zurückgegebene currency folgt dem Marktplatz, sodass eine ebay.de-Suche in EUR zurückkommt.
Die Ergebnisse filtern
Die meisten echten Anwendungsfälle brauchen mehr als eine reine Stichwortsuche. Das Plugin stellt dieselben Filter, die du in der eBay-Seitenleiste anklicken würdest, als schlichte Anfragefelder bereit:
condition- beschränkt auf neu, gebraucht, generalüberholt usw.listing_type- Auktion versus Festpreis (Sofort-Kaufen)min_price/max_price- eine Preisspannefree_shipping- nur Angebote mit kostenlosem Versandseller- Angebote eines bestimmten Verkäuferscategory- beschränkt auf eine eBay-Kategorie
Um zum Beispiel gebrauchte mechanische Tastaturen unter 80 EUR auf dem deutschen Marktplatz mit kostenlosem Versand zu finden:
curl -X POST "https://api.scrapeunblocker.com/marketplace/ebay-search" \
-H "x-scrapeunblocker-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "mechanische Tastatur",
"domain": "ebay.de",
"condition": "used",
"max_price": 80,
"free_shipping": true
}'
Sortieren und Paginieren
Standardmäßig gibt eBay seine “Beste Ergebnisse”-Reihenfolge zurück. Das kannst du mit dem Parameter sort überschreiben - zum Beispiel newly_listed, um die neuesten Angebote zuerst zu sehen, was du willst, wenn du auf neuen Bestand achtest statt zu stöbern.
Die Paginierung steuerst du mit page und page_size. Die Optionen für die Seitengröße spiegeln die von eBay wider: 60, 120 oder 240 Ergebnisse pro Seite. Wenn du eine vollständige Momentaufnahme einer Kategorie ziehst, nutze page_size: 240 und laufe page durch, bis keine Ergebnisse mehr kommen, statt viele kleine Anfragen zu stellen.
import requests
URL = "https://api.scrapeunblocker.com/marketplace/ebay-search"
HEADERS = {"x-scrapeunblocker-key": "YOUR_API_KEY"}
def search_ebay(query, domain="ebay.com", **filters):
body = {"query": query, "domain": domain, "page_size": 240, **filters}
resp = requests.post(URL, headers=HEADERS, json=body, timeout=60)
resp.raise_for_status()
return resp.json()
data = search_ebay("Vintage Omega Uhr", domain="ebay.com", sort="newly_listed")
for item in data["results"]:
print(item["price"], item["currency"], "-", item["title"])
Ein Hinweis zu ungefähren Treffern
Ein Detail, das Beachtung verdient: Wenn eBay keinen exakten Treffer für deine Anfrage hat, gibt es keine leere Seite zurück. Stattdessen liefert es eine Seite mit lose verwandten Vorschlägen. Für einen stöbernden Menschen ist das in Ordnung, aber es kann einen Datensatz still verunreinigen, wenn du annimmst, dass jedes Ergebnis ein echter Treffer ist.
Das Plugin geht damit ehrlich um. Wenn die Ergebnisse keine exakten Treffer sind, setzt die Antwort exactMatches: false und enthält ein notice-Feld, das erklärt, was passiert ist, statt die Vorschläge als echte Treffer zu verkleiden. Prüfe in deinem Code dieses Flag, bevor du den Ergebnissen vertraust:
data = search_ebay("eine sehr spezifische Modellnummer")
if not data.get("exactMatches", True):
print("Keine exakten Treffer:", data.get("notice"))
else:
process(data["results"])
Diese eine Prüfung bewahrt dich davor, still einen Preisindex aus “Das könnte dir auch gefallen”-Füllmaterial zu bauen.
Was du damit bauen kannst
Sobald eBay-Angebote sauberes JSON sind, werden viele kleine, nützliche Tools zu einer Nachmittagsarbeit statt zu einem Projekt:
- Preisüberwachung - führe dieselbe Anfrage nach Zeitplan aus, speichere den Medianpreis und schlage Alarm, wenn er sich bewegt. Da
pricenumerisch ist, ist die Aggregation trivial. - Wiederverkauf und Arbitrage - vergleiche
sold-Zahlen und Angebotspreise zwischenebay.comundebay.co.uk, um regionale Lücken zu erkennen. - Marktforschung - ziehe eine ganze Kategorie mit
page_size: 240und gruppiere nachconditionund Verkäuferbewertung, um zu verstehen, wer was zu welchem Preis verkauft. - Deal-Bots - filtere nach
max_priceundfree_shipping, sortiere nachnewly_listedund frage nach neuen Angeboten unter einer Schwelle ab.
Jedes davon ist nur das Plugin plus ein paar Zeilen eigener Logik - keine Scraping-Infrastruktur, die du hüten musst.
FAQ
Brauche ich ein eBay-Entwicklerkonto oder einen API-Schlüssel? Nein. Das Plugin nutzt weder die offizielle Finding- noch die Browse-API von eBay, es gibt also keine eBay-App-Registrierung, keinen OAuth-Flow und keine Freigabe pro Marktplatz. Du rufst den ScrapeUnblocker-Endpunkt mit deinem eigenen Schlüssel auf.
Welche Marktplätze werden unterstützt?
19 regionale eBay-Sites, von ebay.com über ebay.co.uk, ebay.de, ebay.com.au und mehr. Stelle den Parameter domain ein, um einen auszuwählen. Preise kommen in der jeweiligen Landeswährung des Marktplatzes zurück.
Wie viele Ergebnisse bekomme ich pro Aufruf?
Bis zu 240 Angebote pro Seite über page_size, und du kannst mit page tiefer in eine Kategorie blättern.
Kann ich nach Auktion oder Sofort-Kaufen filtern?
Ja. Nutze listing_type, um auf Auktionen oder Festpreis zu beschränken, und kombiniere es mit min_price, max_price, condition und free_shipping, um die Menge einzugrenzen.
Was passiert, wenn es keine exakten Treffer gibt?
Die Antwort kommt mit exactMatches: false und einem notice-Feld zurück, und die results enthalten eBays lose verwandte Vorschläge. Prüfe das Flag, bevor du sie als echte Treffer behandelst.
Fazit
Das eBay-Search-Plugin verwandelt den chaotischsten Teil der eBay-Datenerfassung - die Suchergebnisseite - in einen einzigen JSON-Aufruf. Du sparst dir den Headless-Browser, die Proxy-Rotation und die brüchigen Selektoren und gehst direkt zu normalisierten Feldern, die du sortieren, filtern und aggregieren kannst.
Wenn du es ausprobieren möchtest, ist der Endpunkt über das Dashboard verfügbar und neben den anderen fertigen Scrapern in der Entwicklerdokumentation beschrieben. Es ist eines von einer wachsenden Reihe von Plugins bei ScrapeUnblocker, die saubere, strukturierte Daten von Sites zurückgeben, die sonst echte Scraping-Arbeit erfordern würden.
ScrapeUnblocker kostenlos testen
Über 95 % Erfolgsquote · ab 0,55 € pro 1.000 Aufrufe · 500 kostenlose Anfragen bei der Registrierung.