Wie man AliExpress-Produktdaten für Dropshipping-Recherchen scrapt

AliExpress verbirgt seine Produktdaten in einer JavaScript-Variable, nicht im sichtbaren HTML. Holen Sie sich dieses JSON und Sie erhalten Preise, Rabatte, Versandort und Verkaufszahlen in einer einzigen Anfrage — hier ist, wie es geht, mit der Anti-Block-Infrastruktur.

AliExpress ist der größte globale Marktplatz und eine erstklassige Quelle für Dropshipping-Recherchen: Preis- und Rabattverlauf, was tatsächlich verkauft wird, Versandherkunft und wie sich Angebote je nach Land ändern. Im Jahr 2026 setzt es stark auf JavaScript-Rendering und zufällige Klassennamen, was die Leute dazu bringt, einen vollständigen Browser zu starten. Normalerweise benötigen Sie keinen. Die Produktdaten befinden sich bereits im Seitenquelltext in einer JavaScript-Variable — extrahieren Sie diese und Sie erhalten saubere, strukturierte Daten in einer einzigen Anfrage. Dieser Leitfaden zeigt die versteckte-JSON-Methode, die geografische Dimension, die AliExpress-Daten wertvoll macht, und die Proxy-Infrastruktur, die einen Scraper am Leben hält.

Die Daten befinden sich in window.runParams, nicht im DOM

Öffnen Sie eine Kategorie- oder Suchergebnisseite und sehen Sie sich den Quelltext an. Alle Produktvorschauen sind in einer JavaScript-Variable namens window.runParams gespeichert, versteckt in einem <script>-Tag. Dies ist ein gängiges modernes Muster — der Server liefert die Daten als JSON und das Frontend rendert sie clientseitig. Für einen Scraper ist es ein Geschenk: Sie überspringen die fragilen CSS-Selektoren vollständig, ziehen das Skript-Tag mit einem Regex und parsen es wie ein Wörterbuch. Diese Technik wird als verstecktes Web-Daten-Scraping bezeichnet und ist weitaus langlebiger als das Verfolgen von Klassennamen, die sich bei jedem Deployment ändern.

import re, json, httpx

HEADERS = {
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 "
                  "(KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36",
    "accept-language": "en-US,en;q=0.9",
}

PROXY = "http://USER:PASS@gate.quantumproxies.io:8000"

def get_run_params(html: str) -> dict:
    # The product data lives in window.runParams = {...};
    m = re.search(r"window\.runParams\s*=\s*(\{.+?\});", html, re.DOTALL)
    if not m:
        raise ValueError("runParams not found - page may be blocked or changed")
    return json.loads(m.group(1))

url = "https://www.aliexpress.com/category/.../catName.html"
r = httpx.get(url, headers=HEADERS, proxy=PROXY, timeout=30)
data = get_run_params(r.text)

Die Felder parsen, die für die Recherche wichtig sind

Der runParams-Blob ist riesig, also ziehen Sie nur die Felder, die für Dropshipping- und Preisrecherchen tatsächlich verwendet werden: den Listentitel, den Original- vs. Verkaufspreis, den Rabattprozentsatz, wie viele verkauft wurden und — entscheidend — das Versandland, das die Lieferzeit und das Vertrauen der Käufer bestimmt. Die Verschachtelung sieht einschüchternd aus, ist aber stabil:

def parse_items(data: dict) -> list[dict]:
    items = data.get("mods", {}).get("itemList", {}).get("content", [])
    out = []
    for it in items:
        prices = it.get("prices", {})
        sale = prices.get("salePrice", {})
        orig = prices.get("originalPrice", {})
        out.append({
            "id": it.get("productId"),
            "title": it.get("title", {}).get("displayTitle"),
            "sale_price": sale.get("minPrice"),
            "orig_price": orig.get("minPrice"),
            "discount_pct": sale.get("discount"),
            "currency": sale.get("currencyCode"),
            "sold": it.get("trade", {}).get("tradeDesc"),   # e.g. "1,000+ sold"
            "store_id": it.get("store", {}).get("storeId"),
        })
    return out

for row in parse_items(data)[:5]:
    print(row["title"][:40], row["sale_price"], f"-{row['discount_pct']}%", row["sold"])

Dieser einzelne Aufruf gibt Ihnen die Wirtschaftlichkeit eines Produkts: Eine Liste, die einen Originalpreis von $65,85 zeigt, der auf einen Verkaufspreis von $23,29 fällt, ist ein 64% Rabatt — die Art von Margensignal, das Ihnen sagt, ob ein Artikel es wert ist, beschafft zu werden. Die "verkauft"-Anzahl ist Ihr Nachfrageindikator; kombiniert über eine Kategorie hinweg rangiert es Gewinner, ohne dass Sie eine Bewertungsseite berühren.

Pipeline-Diagramm, das eine AliExpress-Seitenanfrage, Regex-Extraktion von window.runParams und geparste Produktfelder als JSON zeigt
Die Listendaten werden serverseitig in eine JavaScript-Variable gerendert — kein headless Browser erforderlich, um sie zu lesen.

Suchpaginierung ohne die Seite zu überlasten

Suchseiten verwenden Paginierung mit bekannter Länge, daher ist das effiziente Idiom: Seite eins scrapen, die Gesamtseitenanzahl aus der Antwort lesen und dann den Rest gleichzeitig unter einer Obergrenze abrufen. Feuern Sie nicht alle Seiten auf einmal ab — AliExpress begrenzt die Rate aggressiv und beginnt mit der Rückgabe von 403s. Halten Sie die Parallelität bescheiden und rotieren Sie die Exit-IP bei jeder Anfrage:

import asyncio, httpx

ROTATING = "http://USER:PASS@rotating.quantumproxies.io:8000"

async def fetch_page(client, query, page):
    url = f"https://www.aliexpress.com/w/wholesale-{query}.html?page={page}"
    for attempt in range(3):
        r = await client.get(url, headers=HEADERS, timeout=30)
        if r.status_code == 200:
            return parse_items(get_run_params(r.text))
        if r.status_code == 403:                 # blocked: back off, rotate exit
            await asyncio.sleep(2 ** attempt)
    return []

async def scrape_search(query, max_pages=5):
    async with httpx.AsyncClient(proxy=ROTATING) as client:
        sem = asyncio.Semaphore(3)               # gentle concurrency
        async def guarded(p):
            async with sem:
                return await fetch_page(client, query, p)
        pages = await asyncio.gather(*[guarded(p) for p in range(1, max_pages + 1)])
        return [row for page in pages for row in page]

results = asyncio.run(scrape_search("wireless earbuds"))
print(len(results), "products")

Das rotierende Gateway ist hier wichtig: Eine IP, die Seite für Seite abruft, ist der schnellste Weg, um einen Block zu verdienen, während die pro-Anfrage-Rotation über einen residential pool die Last verteilt, sodass kein einzelner Exit abnormal aussieht. Exponentielles Backoff bei der 403 gibt einer verbrannten IP Zeit, um herauszurotieren.

AliExpress auf über 90 Millionen Residential-IPs scrapen

Geo ist der ganze Punkt

AliExpress personalisiert Preise, Währung, Aktionen und Versandlager nach dem Standort des Besuchers — dasselbe Produkt kann eine US-lokale Karte mit schnellerem Versand zu einer US-IP und einen anderen Preis und Ursprung zu einer europäischen zeigen. Für Dropshipping-Recherchen ist diese geografische Dimension die Daten: Sie möchten wissen, was ein Kunde in Ihrem Zielmarkt tatsächlich sieht. Stellen Sie also das Exit-Land bewusst ein. Routen Sie durch eine IP in jedem Markt, in dem Sie verkaufen, und zeichnen Sie die Deltas auf; ein Produkt, das in einer Region günstig und lokal versendet wird, aber in einer anderen langsam und teuer ist, ist eine ganz andere Wette. Unser Leitfaden zu Proxies für Dropshipping-Recherchen geht tiefer darauf ein, wie man diese Matrizen in Beschaffungsentscheidungen umwandelt.

# One product, three markets - compare price and ship-from per geo
MARKETS = {
    "us": "http://USER:PASS-country-us@gate.quantumproxies.io:8000",
    "de": "http://USER:PASS-country-de@gate.quantumproxies.io:8000",
    "br": "http://USER:PASS-country-br@gate.quantumproxies.io:8000",
}
for market, proxy in MARKETS.items():
    r = httpx.get(product_url, headers=HEADERS, proxy=proxy, timeout=30)
    d = get_run_params(r.text)
    # read price + shipFrom from the product detail runParams for this geo
    print(market, "->", extract_price_and_origin(d))

Bewertungen und Lagerbestände leben in separaten Anfragen

Listen geben Ihnen Preis und Nachfrage, aber zwei wertvolle Felder befinden sich hinter eigenen Anfragen. Kundenbewertungen sind nicht im runParams der Produktseite — sie laden von einem dedizierten Feedback-Endpunkt, paginiert, sodass Sie, um Bewertungen und Bewertungstexte zu sammeln, diesen Aufruf pro Produkt folgen, anstatt die Hauptseite zu parsen. Lagerbestandsignale sind ähnlich: Die "verkauft"-Anzahl auf einer Liste ist ein kumulativer Nachfrageindikator, während die genaue Verfügbarkeit pro Variante (Farbe, Größe, Versandlager) aus den SKU-Daten im Produktdetail-Payload stammt. Für Dropshipping-Recherchen ist dies wichtig, da ein Produkt wie ein Gewinner bei Preis und Verkäufen aussehen kann, während eine bestimmte Variante, die Sie verkaufen möchten, im Lager, das Ihren Markt bedient, nicht vorrätig ist.

Behandeln Sie die beiden als zweiten Durchgang: Scrapen Sie zuerst Listen, um Kandidaten nach Rabatt und Verkaufsanzahl zu ranken, und bereichern Sie dann nur Ihre Shortlist mit Bewertungsseiten und pro-Variante-Lagerbestand. Das hält das Anfragevolumen — und Ihr Blockrisiko — proportional zu Ihrem Interesse an jedem Produkt, anstatt jede Liste für Daten zu überlasten, die Sie nicht verwenden werden.

Wann man den DIY-Scraper überspringen sollte

Die versteckte-JSON-Methode ist langlebig, aber AliExpress ändert die Payload-Formate, blockiert Bewertungen hinter einem separaten Endpunkt und eskaliert Blocks bei hohem Volumen. Wenn Sie lieber keine Regex- und Retry-Logik pflegen möchten, nimmt ein Scraper API eine URL und gibt geparstes JSON zurück — es übernimmt das Rendering, die Rotation und die Anti-Block-Schicht, und Sie geo-targetieren mit einem einzigen Parameter. Es ist die pragmatische Wahl, sobald Sie Tausende von Produkten über Märkte hinweg nach einem Zeitplan sammeln. Für das allgemeine Muster, Daten direkt aus clientseitigen Payloads zu lesen, siehe unsere Notiz zu warum ein Scraper eine leere Seite zurückgibt.

Checkliste, die AliExpress-Scraping-Hindernisse wie 403s und Geo-Preise mit Lösungen wie Residential-Rotation und Geo-Targeting abbildet
Drei Hindernisse, drei Lösungen — die meisten AliExpress-Scraper-Fehler sind ein IP-Qualitäts- oder Geo-Problem.

Häufig gestellte Fragen

Können Sie AliExpress-Produktdaten scrapen?

Ja. Öffentlich sichtbare Listendaten — Titel, Preise, Rabatte, Verkaufszahlen, Bilder und Versandort — werden in die window.runParams JavaScript-Variable auf Kategorie-, Such- und Produktseiten geliefert. Sie extrahieren es mit einem Regex und parsen es als JSON, ohne einen headless Browser für Listen zu benötigen. Respektieren Sie die Bedingungen und Ratenlimits von AliExpress.

Hat AliExpress eine öffentliche API?

AliExpress bietet Affiliate- und Open-Platform-APIs an, aber sie erfordern eine Genehmigung, haben begrenzte Abdeckung und sind an ein Programm gebunden. Für umfassende Recherchen über Kategorien und Märkte hinweg bietet das Scraping der öffentlichen Seiten mehr Felder und volle Geo-Kontrolle, weshalb die meisten Dropshipping-Forscher das On-Page-JSON extrahieren.

Warum erhalte ich 403-Fehler beim Scrapen von AliExpress?

Ein 403 bedeutet, dass AliExpress die Anfrage markiert hat — normalerweise zu viele Treffer von einer IP, einem Rechenzentrum oder einem dünnen Header-Set. Rotieren Sie Residential-IPs pro Anfrage, fügen Sie exponentielles Backoff bei der 403 hinzu, senden Sie einen realistischen User-Agent und akzept-language und halten Sie die Parallelität niedrig. Wenn runParams im HTML fehlt, ist das der Block, nicht eine Layoutänderung.

Wie bekomme ich länderspezifische AliExpress-Preise?

Routen Sie die Anfrage durch eine Exit-IP im Zielland. AliExpress liest den Standort, um Währung, Preis, Aktionen und Versandlager festzulegen, sodass eine US-IP und eine deutsche IP unterschiedliche Daten für dasselbe Produkt sehen. Geo-targetieren Sie den Proxy pro Markt und zeichnen Sie jede Version auf, um eine Preis-nach-Geo-Matrix zu erstellen.

Der gewinnende Ansatz ist langweilig und langlebig: Lesen Sie das JSON, das die Seite bereits liefert, paginieren Sie höflich, rotieren Sie saubere Residential-IPs und geo-targetieren Sie jeden Markt, der Ihnen wichtig ist. Tun Sie das und AliExpress wird zu einer zuverlässigen Quelle für Preise, Nachfrageindikatoren und Versandökonomie anstatt zu einer Wand von 403s.

Geparste AliExpress-Daten von der Scraper API erhalten