🔥 Alle Residential- und Mobile-Proxys – nur $1. Jetzt ausprobieren!

Leitfaden zum eBay-Scraper: So extrahieren Sie Daten von eBay

Leitfaden zum eBay-Scraper: So extrahieren Sie Daten von eBay

eBay verfügt über eine wahre Goldgrube an öffentlich zugänglichen Preisdaten. Millionen aktueller Angebote aus den Bereichen Sammlerstücke, Elektronik, Auslaufartikel und vieles mehr – all dies eignet sich hervorragend für die Preisbeobachtung, Marktforschung oder Wettbewerbsanalyse. Das Problem besteht darin, zuverlässig an diese Daten heranzukommen. Mit einem einfachen Python-Skript kommen Sie vielleicht ein paar Seiten weit, bevor eBay Ihnen CAPTCHAs vorlegt.

In dieser Anleitung werde ich Ihnen daher Schritt für Schritt erklären, wie Sie mit dem „Web Unlocker“ von Floppydata eBay richtig auswerten und tatsächlich Ergebnisse erzielen können.

TL;DR

So extrahieren Sie eBay-Angebote, ohne Zeit mit CAPTCHAs und fehlerhaften Selektoren zu verschwenden

• eBay blockiert einfache Scraper sehr schnell – CAPTCHAs, Ratenbeschränkungen, Bot-Erkennung, das ganze Programm. Ein einfacher Python-Request reicht dafür nicht aus.

• Der einfachere Weg ist der „Web Unlocker“ von Floppydata – er umgeht die Anti-Bot-Sicherheitsmaßnahmen und liefert Ihnen sauberen HTML-Code.

• Von da an benötigen Sie lediglich Python und BeautifulSoup, um Angebotsdaten für die Preisverfolgung, Recherche und Analyse abzurufen.

• Die meisten im Internet verfügbaren Tutorials zum Thema Scraping sind bereits veraltet – eBay ist von li.s-item auf li.s-card umgezogen, und viele Selektoren wurden nie aktualisiert.

• Neue Floppydata-Konten erhalten fünf kostenlose Datenerfassungen, sodass Sie diese Anleitung befolgen können, ohne im Voraus Kosten zu verursachen.

Was versteht man eigentlich unter „eBay-Scraping“?

Ehrlich gesagt ist das ziemlich einfach. Sie extrahieren lediglich öffentlich zugängliche Angebotsdaten von eBay-Seiten und wandeln diese in ein Format um, mit dem Sie arbeiten können – eine CSV-Datei, eine JSON-Datei oder was auch immer. Anstatt sich die Angebote einzeln durchzuklicken, erfasst ein Scraper all diese Daten auf einmal.

Bevor wir uns mit dem eigentlichen Code befassen, sollten Sie zwei Seitentypen kennen:

  • Suchergebnisseiten, die Übersichtsansicht mit Titel, Preis, Zustand, Versandinformationen und einem Link zum Angebot.
  • Artikel-Detailseiten, also die URLs im Format /itm/ITEM_ID, auf denen die tiefergehenden Informationen zu finden sind, wie vollständige Beschreibungen, Verkäuferbewertungen, Artikelspezifikationen und Variantenoptionen.

In diesem Tutorial konzentrieren wir uns auf Suchergebnisseiten, da die meisten Nutzer dort beginnen.

Warum sollten Sie Daten von eBay auslesen?

Sobald Sie diese Daten also abgerufen haben, können Sie ehrlich gesagt eine ganze Menge damit anfangen. Die Funktionen, die ich tatsächlich nutze:

  1. Preisüberwachung. Sie erhalten auf einen Blick einen Überblick darüber, zu welchen Preisen Immobilien tatsächlich gehandelt werden – und zwar anhand von Tausenden aktiver und verkaufter Angebote. Dabei sind die verkauften Objekte besonders aussagekräftig, denn dort sehen Sie, was die Käufer tatsächlich bezahlt haben – und nicht irgendeinen Wunschpreis, den ein Verkäufer festgelegt und auf den er gehofft hat.
  2. Wettbewerbsanalyse. Sie können genau sehen, was sich verkauft, in welchem Zustand die Ware ist, wer sie verkauft und welchen Preis die Verkäufer verlangen. Anstatt also zu raten, welchen Preis Sie festlegen sollen, wissen Sie es einfach.
  3. Weiterverkauf und Arbitrage. Das ist der Teil, der die Rechnungen bezahlt, denn die unterbewerteten Angebote sind derzeit auf dem Markt, und dank der Daten können Sie sie ausfindig machen und sich sichern, noch bevor andere sie überhaupt entdecken.
  4. Produktrecherche. Bevor Sie echtes Geld in die Bestückung einer Kategorie investieren, können Sie die Zahlen auswerten und innerhalb weniger Minuten feststellen, ob tatsächlich eine Nachfrage besteht oder ob Sie lediglich Geld in Waren binden würden, die sich niemals verkaufen.
  5. Verkäuferüberwachung. Und wenn Sie einen bestimmten Verkäufer im Blick behalten möchten, gehen Sie genau genauso vor: Sie geben einfach die URL seines Shops anstelle einer Suchanfrage ein, und schon liegen Ihnen sein gesamtes Sortiment und seine Preise direkt vor Augen.

Wenn Ihre Arbeit in irgendeiner Weise mit Wiederverkauf, E-Commerce oder Preisgestaltung zu tun hat, sparen Sie mit solchen Daten unglaublich viel Zeit und können viel schneller fundiertere Entscheidungen treffen.

Warum nutzen Sie nicht einfach die offizielle API?

Ehrlich gesagt ist es für einfache Aufgaben keine schlechte Option. Die Browse-API bewältigt Abfragen mit moderatem Volumen bei aktiven Angeboten recht gut. Allerdings müssen Sie zunächst einen Genehmigungsprozess durchlaufen, es gibt Ratenbeschränkungen, die recht schnell greifen, und sie bietet Ihnen einfach nicht alle Funktionen.

Verkaufte Angebote sind nicht vorhanden, Bewertungen sind nicht vorhanden, und die vollständigen Variantendaten sind nicht in der Form vorhanden, wie sie auf der eigentlichen Seite angezeigt werden. Wenn Sie also einen vollständigen Überblick benötigen – also genau die Daten, die ein echter Nutzer beim Laden der Seite sieht –, ist das Scraping einfach der praktischere Weg.

Falls Sie sich in diesem Bereich noch nicht so gut auskennen, bietet Floppydata eine gute Einführung dazu, was ein Web-Unlocker eigentlich leistet.

Was macht das Scraping bei eBay so schwierig?

Es ist nicht unmöglich, aber es gibt definitiv Faktoren, die Ihnen dabei im Weg stehen. Insbesondere zwei Dinge, mit denen die meisten Menschen zu kämpfen haben.

Ein Punkt ist die Bot-Erkennung. eBay nutzt CAPTCHAs und Ratenbegrenzungen, und eine IP-Adresse mit geringer Vertrauenswürdigkeit wird Ihnen sehr schnell 403-Fehler einbringen. Außerdem wurden die Richtlinien Anfang 2026 verschärft; gehen Sie also verantwortungsbewusst damit um: Nutzen Sie ausschließlich öffentliche Daten, halten Sie die Anfrageraten im normalen Bereich und vermeiden Sie alles, was Bestellungen oder Ähnliches betrifft. Sie benötigen private IP-Adressen und ein Verhalten, das tatsächlich dem eines Browsers ähnelt – andernfalls erhalten Sie keine korrekten Antworten.

Zweitens geht es um die Markup-Struktur, und diese ist etwas tückisch. Während ich dies zusammenstellte, stellte ich fest, dass eBay bereits von li.s-item zu li.s-card umgezogen war – einschließlich aller darin enthaltenen Seiten wie .s-card__title, .s-card__price und .s-card__subtitle. Die meisten Online-Anleitungen verweisen immer noch auf die alte Struktur, sodass sie nun einfach nicht mehr funktionieren. Ihre Selektoren werden irgendwann veraltet sein – so ist es nun einmal bei eBay –, bauen Sie daher von Anfang an einige Sicherheitsprüfungen für fehlende Felder ein.

Jedenfalls leite ich deshalb alles über den Web Unlocker von Floppydata weiter, anstatt mich direkt mit eBay auseinanderzusetzen.

Voraussetzungen

Drei Dinge:

  • Python 3.10 oder höher
  • Ein Floppydata-Konto mit einem Web Unlocker-API-Schlüssel. Mit jedem neuen Konto erhalten Sie fünf kostenlose Scrapes, sodass Sie diese gesamte Anleitung durcharbeiten können, ohne dafür bezahlen zu müssen. Den Schlüssel finden Sie im Web Unlocker-Dashboard.
  • Zwei Bibliotheken: „ requests “ und beautifulsoup4

Kontoeinstellungen und Informationen zum API-Schlüssel

Installieren Sie zunächst die beiden Bibliotheken:

pip install requests beautifulsoup4

Dann Ihr Projektordner:

mkdir ebay-scraper
cd ebay-scraper
touch ebay_scraper.py

Senden der ersten Anfrage

Als Erstes habe ich einfach eine einfache Anfrage gestellt, um zu sehen, was passiert:

import requests

url = "https://www.ebay.com/sch/i.html?_nkw=mechanical+keyboard"
response = requests.get(url)

print(response.status_code)
print(response.text[:500])

Seite blockieren. Keine Angebote, einfach nichts Nützliches. eBay erkennt eine einfache Python-Anfrage sofort – kein Fingerabdruck, keine vertrauenswürdige IP-Adresse – das funktioniert einfach nicht. Anstatt also Zeit damit zu verschwenden, nutze ich einfach den Web Unlocker.

Daten von eBay mit dem Floppydata Web Unlocker auslesen

Es kümmert sich um all die lästigen Dinge: private IP-Adressen, Browser-Fingerabdrücke, Seitenrendering und liefert Ihnen sauberes HTML zurück. Es fallen nur bei erfolgreichen Scrapes Kosten an, sodass Sie bei fehlgeschlagenen Versuchen keine Credits verlieren.

Ich teste immer zuerst im Dashboard-Playground (No-Code-Web-Unlocker-Playground), bevor ich etwas schreibe. Fügen Sie die Such-URL ein, klicken Sie auf „Scrape“ und sehen Sie sich die Ergebnisse an. Es ist viel einfacher, einen Parser zu erstellen, wenn man bereits weiß, womit man es zu tun hat.

Screenshot der Benutzeroberfläche eines Web-Scraping-Tools

Nun haben wir den HTML-Code, also kommen wir zum Programmieren.

Schritt 1: Erstellen Sie die Anfrage

import requests
import json
from bs4 import BeautifulSoup

API_URL = "https://api.floppydata.net/v1/webUnlocker"
API_KEY = "YOUR_API_KEY"

SEARCH_URL = "https://www.ebay.com/sch/i.html?_nkw=mechanical+keyboard&_pgn=1"
OUTPUT_FILE = "ebay_listings.json"

Ersetzen Sie „ YOUR_API_KEY “ durch den Schlüssel aus Ihrem Dashboard.

Außerdem ist _pgn=1 lediglich die Seitenzahl. Wenn Sie die zweite Seite aufrufen möchten, ändern Sie die Adresse in _pgn=2. Für die dritte Seite lautet die Adresse _pgn=3. Ganz einfach.

Schritt 2: Holen Sie die Seite über Web Unlocker

def fetch_html(url):
    response = requests.post(
        API_URL,
        headers={
            "Content-Type": "application/json",
            "X-Api-Key": API_KEY,
        },
        json={
            "url": url,
            "country": "US",
            "city": "New York",
            "difficulty": "medium",
            "expiration": 0,
        },
        timeout=120,
    )

    response.raise_for_status()

    data = response.json()
    html = data.get("html")

    if not html:
        raise ValueError("Unlocker response did not include an 'html' field.")

    return html

Stellen Sie sicher, dass die Anfrage über eine US-Privat-IP-Adresse geleitet wird, was sich sowohl auf die Preisgestaltung als auch darauf auswirkt, welche Angebote tatsächlich angezeigt werden. Die Schwierigkeitsstufe „ medium “ ist speziell für eBay die richtige Einstellung, da die Plattform über einen strengen Bot-Schutz verfügt. Bei einer niedrigeren Einstellung werden Sie einfach blockiert. Die Einstellung „Expiration“ 0 sorgt dafür, dass jedes Mal eine neue Seite geladen wird, anstatt eine zwischengespeicherte Antwort abzurufen. Der gerenderte HTML-Code wird im Feld „ html “ des JSON-Objekts zurückgegeben, und genau diesen analysiert BeautifulSoup im nächsten Schritt. Wenn Sie alle verfügbaren Parameter einsehen möchten, finden Sie diese vollständig in der Web Unlocker-API-Referenz.

Schritt 3: Extrahieren Sie die Inserate

Jedes Ergebnis auf der Suchseite ist ein li.s-card container. Um eBay-Angebote sauber auszulesen, durchlaufen wir jede Karte in einer Schleife und extrahieren die gewünschten Felder. Dabei führen wir Sicherheitsprüfungen durch, damit ein fehlendes Feld den Ablauf niemals zum Absturz bringt:

def extract_listings(html):
    soup = BeautifulSoup(html, "html.parser")
    cards = soup.select("li.s-card")
    listings = []

    for card in cards:
        title_el = card.select_one(".s-card__title")
        title = title_el.get_text(" ", strip=True) if title_el else None

        if title:
            # eBay appends this as accessibility text
            title = title.replace("Opens in a new window or tab", "").strip()

        # Skip the placeholder card at the top of search results
        if not title or title == "Shop on eBay":
            continue

        price_el = card.select_one(".s-card__price")
        condition_el = card.select_one(".s-card__subtitle")

        # Shipping info sits inside attribute rows
        shipping = None

        for row in card.select(".s-card__attribute-row"):
            text = row.get_text(" ", strip=True)

            if any(word in text.lower() for word in ("ship", "free", "delivery")):
                shipping = text
                break

        # Grab the first link that points to an item detail page
        url = None

        for a in card.select("a.s-card__link"):
            href = a.get("href")

            if href and "/itm/" in href:
                url = href.split("?")[0]
                break

        listings.append({
            "title": title,
            "price": price_el.get_text(" ", strip=True) if price_el else None,
            "condition": condition_el.get_text(" ", strip=True) if condition_el else None,
            "shipping": shipping,
            "url": url,
        })

    return listings

Zwei Dinge, die Sie beachten sollten.

  • eBay platziert immer eine Platzhalterkarte mit der Aufschrift „Shop on eBay“ ganz oben in den Suchergebnissen. Wenn Sie diese nicht überspringen, ist der erste Eintrag in der Liste der Angebote lediglich nutzloser Müll.
  • Der Titel übernimmt zudem den Text „Wird in einem neuen Fenster oder Tab geöffnet“ als Barrierefreiheitstext aus dem Anker-Tag, sodass die Ersetzungszeile diesen bereinigt, bevor etwas angehängt wird.

Schritt 4: Speichern Sie die Ergebnisse

def main():
    print(f"Fetching data from: {SEARCH_URL}")

    html = fetch_html(SEARCH_URL)
    listings = extract_listings(html)

    if not listings:
        raise SystemExit("No listings found. eBay may have changed its markup.")

    with open(OUTPUT_FILE, "w", encoding="utf-8") as file:
        json.dump(listings, file, indent=2)

    print(f"Found {len(listings)} listings")
    print(f"Saved results to {OUTPUT_FILE}")


if __name__ == "__main__":
    main()

Führen Sie das Skript aus:

python ebay_scraper.py

Und Sie sollten etwa Folgendes sehen:

[
  {
    "title": "MSI Forge GK600 TKL Wireless Mechanical Keyboard RGB Bluetooth 2.4GHz",
    "price": "$49.99",
    "condition": "Brand New",
    "shipping": "Free shipping",
    "url": "https://www.ebay.com/itm/227344950627"
  }
]

Liste der zum Verkauf stehenden Computertastaturen

So funktioniert der einfache Scraper.

Von hier aus können Sie das Schlüsselwort ändern, indem Sie einfach „ _nkw=mechanical+keyboard “ in der URL ändern. Wenn Sie eine andere Seite aufrufen möchten, können Sie von _pgn=1 zu _pgn=2, _pgn=3 usw. wechseln.

Fehlerbehebung

Es liegt also auf der Hand: Wenn Sie lange genug auf eBay stöbern, werden Sie wahrscheinlich auf eines dieser Angebote stoßen:

  • 403-Fehler: eBay hat Ihre IP-Adresse gesperrt. Die Lösung besteht darin, den Web Unlocker mit privaten IP-Adressen zu nutzen.
  • Leere Antworten: In der Regel handelt es sich um ein Darstellungsproblem. Vergewissern Sie sich, dass Sie aus dem Feld „ html “ in der Antwort des Web Unlockers lesen und nicht aus dem rohen JSON-Body.
  • Fehlende Felder: Nicht bei jedem Angebot sind Angaben zum Zustand oder zum Versand vorhanden. Die Sicherheitsprüfungen unter extract_listings berücksichtigen dies bereits.
  • Überhaupt keine Ergebnisse: eBay hat seine CSS-Klassennamen erneut geändert. Kehren Sie zum Testbereich zurück, überprüfen Sie den neuen Markup-Code und passen Sie Ihre Selektoren entsprechend an.

Ihr nächster Schritt

Sehen Sie, eBay ist zwar nicht gerade die schwierigste Plattform, aber angesichts der CAPTCHAs, der Ratenbegrenzung und der Tatsache, dass sich die Preisaufschläge manchmal einfach so ändern, verschwenden Sie ohne die richtige Konfiguration nur Ihre Zeit. Wenn Sie den Datenabruf über einen Dienst abwickeln, der all das für Sie übernimmt, können Sie sich direkt der eigentlichen Arbeit mit den Daten widmen.

Genau darin liegt die Stärke des „Web Unlocker“ von Floppydata. Rotation von Privat-Proxys, echte Browser-Fingerabdrücke, Vollseiten-Rendering – und Sie zahlen nur für erfolgreiche Antworten, sodass fehlgeschlagene Abrufe Sie nichts kosten. Fügen Sie noch ein paar Zeilen BeautifulSoup hinzu, und das Ganze wird, ehrlich gesagt, ziemlich unkompliziert.

Mit jedem neuen Konto erhalten Sie fünf kostenlose Scrapes, sodass Sie diesen gesamten Leitfaden durcharbeiten können, ohne etwas bezahlen zu müssen.

Testen Sie Floppydata Proxies jetzt - so günstig wie $1/Gb

Teilen Sie diesen Artikel:

Inhaltsverzeichnis

Proxies für $1
Erhalten Sie unbegrenzte Möglichkeiten

Das könnte Ihnen auch gefallen:
Sind Sie bereit für einen transparenten und zuverlässigen Proxy-Service?
Schnelle, sichere und mühelose Proxys, die auf Ihre Bedürfnisse zugeschnitten sind