So scrapen Sie AliExpress-Daten im großen Maßstab

Erfahren Sie, wie Sie AliExpress-Preise, Lagerbestände und Varianten mit Python scrapen, Blockierungen mit HTTP 200 erkennen und mit Bright Data skalieren.
37 min lesen
How to Scrape AliExpress blog image

Beim Scraping von AliExpress werden Preis, Lagerbestand, Varianten, Bewertung und Rezensionen erfasst, die für Preisüberwachung und Konkurrenzanalyse benötigt werden. Das meiste davon steht nicht im HTML, da die Seite es nachträglich von einer signierten internen API lädt.

In meinen Tests lieferte eine einfache Anfrage HTTP 200 und keinen Preis, sodass eine Pipeline einen Erfolg mit einer leeren Zeile protokollieren würde. Von einer IP-Adresse aus begann die signierte API, Anfragen nach etwa einem Dutzend Anfragen zu blockieren.

Diese Anleitung zeigt Ihnen, wie Sie diese Daten erhalten, einen Fehler erkennen, der wie ein Erfolg aussieht, und Bright Datas AliExpress Scraper API im großen Maßstab nutzen.

Kurzfassung

  • Das Objekt window.runParams, das ältere Tutorials parsen, ist leer. Preis-, Lagerbestands- und SKU-Daten werden von mtop.aliexpress.pdp.pc.query geladen, was eine MD5-Signatur benötigt.
  • Erkennen Sie Blockierungen anhand von Markern, nicht anhand von Statuscodes. Blockierte Anfragen lieferten HTTP 200, einen bxpunish-Header und einen Body-Marker wie rgv587_flag.
  • Eine korrekte Signatur verhinderte keine Blockierungen. Zwei Durchläufe mit je 60 Aufrufen von einer IP-Adresse ohne Verzögerung erhielten Daten bei 7 bzw. 15 Aufrufen.
  • Im großen Maßstab die öffentlichen /item/-Produktseiten scrapen. Bright Datas AliExpress Scraper API extrahiert strukturierte Daten, und die Browser API ermöglicht es Ihrem Skript, die vollständige API-Antwort jeder Seite zu lesen.

Was passiert, wenn Sie AliExpress mit einem HTTP-Client scrapen

Beginnen Sie mit einer HTTP-Anfrage, gesendet ohne Browser oder Proxy. Falls diese einen Timeout erleidet, kann Ihr Netzwerk AliExpress nicht direkt erreichen, und ein Proxy oder eine der unten beschriebenen verwalteten Methoden sendet die Anfrage aus einem Netzwerk, das dies kann.

Alles unten verwendet 3 Pakete. Das Scraper-API-Skript in einem späteren Abschnitt liest Ihren Bright Data API-Schlüssel aus einer Umgebungsvariable:

pip install curl_cffi playwright requests
export BRIGHTDATA_API_KEY="your-api-key"    # PowerShell: $env:BRIGHTDATA_API_KEY="your-api-key"

Rufen Sie eine Produktseite mit curl_cffi ab und lesen Sie das <title>, das Objekt window.runParams, das ältere Tutorials parsen, und das Bootstrap-Objekt, das die Seite an ihr eigenes JavaScript übergibt. Diese 3 Werte zeigen, ob ein einfacher HTTP-Client ausreicht:

import re
from curl_cffi import requests as cffi

# jede noch existierende Produkt-URL funktioniert
ITEM = "https://www.aliexpress.com/item/1005001398867186.html"

# kein eigener User-Agent: curl_cffi sendet einen, der zum imitierten Browser passt
r = cffi.get(ITEM, impersonate="chrome", timeout=30)
html = r.text

print("status      ", r.status_code)
print("bytes       ", len(html))
print("title       ", repr(re.search(r"<title>(.*?)</title>", html, re.S).group(1)))
print("runParams   ", repr(re.search(r"window\.runParams\s*=\s*(\{.*?\});", html, re.S).group(1)))
print("isCSR       ", re.search(r"isCSR\s*=\s*(\w+)", html).group(1))
print("crawler flag", re.search(r'"crawler":(\w+)', html).group(1))

Der Abruf gelingt:

status       200
bytes        77226
title        ''
runParams    '{\n                    }'
isCSR        true
crawler flag false

Die Seite ist eine HTML-Hülle, ohne Preis, Lagerbestand, SKU, Bewertung oder Rezensionen. Bevor überhaupt JavaScript ausgeführt wird, enthält die Hülle bereits die Open-Graph-Tags. og:title enthält den echten Produktnamen, während <title> leer ist, und og:image, og:url und og:type (auf product gesetzt) sind ebenfalls vorhanden. og:description enthält nur einen generischen AliExpress-Slogan, und die Seite hat kein JSON-LD, sodass keine der beiden Quellen Produktdaten liefert.

Ein Browser, der dieselbe URL in derselben Stunde lädt, rendert Preis, Bewertung und Varianten:

AliExpress-Produktseite für einen TOMZN-Fehlerstromschutzschalter, in einem Browser gerendert, mit einem Verkaufspreis von 7,73 $ und einem Listenpreis von 14,40 $, einer Bewertung von 4,7 aus 80 Rezensionen und 489 verkauften Einheiten, sieben Schaltflächen für Nennstrom-Varianten von 16A bis 63A, dem Verkäuferpanel TOMZN Official Store sowie den Schaltflächen Jetzt kaufen und In den Warenkorb

Gerendert über Bright Datas Browser API mit Geolocation-Targeting auf die USA eingestellt. Die interne API von AliExpress liefert für dieses Produkt denselben Listenpreis von 14,40 $ und die Bewertung 4,7. Der Verkaufspreis stammt aus einer befristeten Aktion und ändert sich im Laufe der Zeit.

Die Suche nach diesem Listenpreis im Seitenquelltext findet nichts:

Browser-Tab mit Seitenquelltext für www.aliexpress.us/item/3256801212552434.html, wobei die Suchleiste nach 14.40 sucht und 0/0 Treffer meldet, über dem Anfang des Head-Bereichs der Seite, wo ein og:title-Meta-Tag den TOMZN RCBO Circuit Breaker 16-63A 220V Surge Protector benennt und og:description einen generischen AliExpress-Slogan enthält

Erfasst auf dem US-Shop, der dieselbe 77-KB-Hülle ausliefert.

Die Katalogfelder sind günstig zu erfassen. Eine einzelne GET-Anfrage ohne Entsperrung liefert die Katalogfelder, sodass Sie Produkt-IDs ohne Rendering Titeln und Hauptbildern zuordnen können. Preis- und Sortiments-Pipelines benötigen Preis-, Lagerbestands- und Variantendaten, die aus dem internen API-Gateway von AliExpress stammen. Planen Sie diese 2 Aufgaben separat.

Lassen Sie curl_cffi den User-Agent wählen. impersonate="chrome" ist ein Alias und keine Version. Im Quellcode der Bibliothek ordnet curl_cffi 0.16.1 den Alias über eine DEFAULT_CHROME-Konstante chrome150 zu, und diese Konstante ändert sich, sobald ein neues Profil veröffentlicht wird. Wenn Sie den Header nicht setzen, sendet die Bibliothek auch den passenden Chrome/150-User-Agent.

Wenn Sie einen eigenen User-Agent übergeben, ersetzt dieser den User-Agent der Bibliothek, sodass eine fest codierte Chrome/141-Zeichenkette mit einem Chrome-150-TLS-Handshake gesendet wird. Die Diskrepanz löst keinen Fehler aus, sodass Sie es bereitstellen können, ohne es zu bemerken. Lassen Sie den Header entweder weg und erlauben Sie der Bibliothek, den User-Agent mit dem Handshake zu kombinieren, oder legen Sie das Profil auf eine Version fest und passen Sie die Zeichenkette daran an. Ingenieure, die TLS-Clients bauen, berichten, dass eine nicht übereinstimmende Identität leichter zu erkennen ist als eine konsistente, und dass der User-Agent lange vor dem TLS-Handshake veraltet.

Das isCSR-Flag zeigt, wie die Seite rendert. Sein Wert ist true, da AliExpress die Produktdetailseite auf clientseitiges Rendering (CSR) umgestellt hat. window.runParams ist ein ungenutztes leeres Objekt, das von regex-basierten Extraktoren dennoch gefunden wird. Ein Parser, der es liest, löst keinen Fehler aus und gibt nichts zurück.

Jeder von mir getestete Client erhielt HTTP 200 und dieselbe 77-KB-Hülle. Ich sendete 20 aufeinanderfolgende Anfragen an diese URL von einer Residential-IP-Adresse ohne Proxy, und alle lieferten HTTP 200. Die Anfragen liefen in einer einzigen Sitzung mit einer Anfrage alle 0,4 Sekunden, ohne User-Agent-Rotation. Ich rief dieselbe URL auch als python-requests/2.32.5, als curl/8.7.1 und mit 3 TLS-Impersonation-Profilen ab.

Das Senden des Googlebot-User-Agents ändert "crawler" im Bootstrap-Objekt von false auf true. Die Antwort unterscheidet sich um 1 Byte. Das Flag fügte keine serverseitig gerenderte Nutzlast hinzu, sodass das Vortäuschen von Googlebot nur einen booleschen Wert ändert und sonst nichts.

Prüfen Sie bei einem clientseitig gerenderten Marktplatz die Daten, bevor Sie einen Abruf als Erfolg protokollieren. Der Statuscode zeigt nur, dass die HTTP-Anfrage erfolgreich war. Bei diesem Ziel war die Anfrage auch erfolgreich, wenn die Daten fehlten.

Die Blockierung, die HTTP 200 zurückgibt

AliExpress blockiert tatsächlich Anfragen, aber die HTTP-Statuszeile zeigt die Blockierung nicht an.

Die eigene robots.txt der Seite nennt einen internen Endpunkt in einer Googlebot-spezifischen Regel, und dieser Endpunkt kann die Produktdaten zurückgeben. Rufen Sie ihn direkt auf und lesen Sie die Antwort-Header vor dem Body:

from curl_cffi import requests as cffi

PID = "1005001398867186"
url = f"https://www.aliexpress.com/aeglodetailweb/api/msite/item?productId={PID}"
r = cffi.get(url, impersonate="chrome", timeout=30,
             headers={"Accept": "application/json",
                      "Referer": f"https://www.aliexpress.com/item/{PID}.html"})

print("status", r.status_code, "bytes", len(r.text))
for k in ("server", "x-rule-name", "bxpunish", "set-cookie"):
    print(f"  {k:12s} {str(r.headers.get(k))[:70]}")
print("body marker:", "rgv587_flag" in r.text, "| x5secdata:", "x5secdata" in r.text)

Die Antwort stammt vom Baxia-Anti-Bot-System von Alibaba und hat einen Erfolgsstatuscode:

status 200 bytes 2399
  server       Tengine/AServer-Ingress
  x-rule-name  AE_GLOBAL_UNLOGIN
  bxpunish     1
  set-cookie   x5secdata=xffEdBbOh5ArPGTjyI_40B3_06C7jiK2nBFPGlpVzkk2x66w14DH6V
body marker: True | x5secdata: True

Der Body ist ein Skript, das über window.location zu einer _____tmd_____/punish-URL weiterleitet und window._config_ = {"action":"captcha", ...} setzt. Es endet mit <!--rgv587_flag:sm-->, dem Blockierungs-Marker von Alibaba. Der x-rule-name-Header nennt die zutreffende Regel, AE_GLOBAL_UNLOGIN, die offenbar die Regel für nicht authentifizierten globalen Traffic ist. Derselbe Header kam auch bei normalen, nicht blockierten Antworten zurück, markiert also allein keine Blockierung.

Prüfungen des Statuscodes akzeptieren diese blockierte Antwort. raise_for_status() löst keinen Fehler aus, und eine Prüfung status_code == 200 gibt true zurück. Wenn ein Dashboard HTTP-2xx-Antworten als Erfolge zählt, meldet es eine gesunde Pipeline, obwohl die Zeilen leer sind.

Erkennen Sie Blockierungen daher anhand der Antwort-Header und des Bodys, nicht anhand des Statuscodes. Die Fehlertexte von Alibaba können sich ohne Vorankündigung ändern, aber ein dedizierter Antwort-Header und eine Marker-Zeichenkette im Body sind günstig zu prüfen und günstig zu erweitern:

BLOCK_MARKERS = ("rgv587_flag", "x5secdata", "_____tmd_____", "FAIL_SYS_USER_VALIDATE")

def is_blocked(resp, min_bytes=1024):
    """True, wenn Baxia anstelle der Anwendung geantwortet hat."""
    if resp.headers.get("bxpunish"):
        return True
    body = resp.text
    if len(body) < min_bytes:          # eine fast leere 200 ebenfalls als Blockierung werten
        return True
    return any(m in body[:4096] for m in BLOCK_MARKERS)

In meinen Durchläufen erkannten diese Prüfungen jede Blockierung, die der Statuscode nicht zeigte. Führen Sie dieselben Prüfungen vor Ihrem Parser aus und fügen Sie sie hinzu, bevor Sie irgendwelche Selektoren schreiben. Ohne sie erfahren Sie von einer Blockierung bei diesem Ziel erst, wenn Ihr Parser keine Daten findet.

Protokollieren Sie den Grund für jede fehlgeschlagene Anfrage. Bei diesem Ziel benötigen eine Blockierungsseite, eine leere Hülle und ein Preis in der falschen Währung jeweils eine andere Lösung, und eine Gesamterfolgsrate verbirgt alle 3. Trennen Sie die Gründe auch nach Exit-Land, da ein Preis in der falschen Währung immer noch wie ein Erfolg aussieht.

Produkt-API-Aufrufe selbst signieren

Die Produktfelder existieren tatsächlich als JSON. Wenn Sie eine Seite in einem Browser laden und deren XHR-Traffic aufzeichnen, sehen Sie, dass diese Felder von einem API-Gateway stammen, das die Seite aufruft.

Ein Seitenaufruf macht Anfragen an Alibabas MTOP-Gateway unter acs.aliexpress.com/h5/<api>/<version>/, jede mit jsv, appKey, einem Millisekunden-Zeitstempel t und einer 32-stelligen sign. mtop.aliexpress.pdp.pc.query liefert Preis, Lagerbestand, SKU, Shop und Bewertung. Rezensionstext stammt aus einem zweiten signierten Aufruf, mtop.aliexpress.review.pc.list, am selben Gateway, sodass das Sammeln von Rezensionen eine zweite Anfrage pro Produkt benötigt. Das Lesen des eingebetteten Bootstrap-Skripts zeigt, dass die Seite mehr als eine Produkt-API aufrufen kann:

Seitenvariante (viewName) Vorgeladene API
newDetail mtop.aliexpress.pdp.pc.query
choiceDetail mtop.aliexpress.itemdetail.pc.asyncPCDetail
h5Detail mtop.aliexpress.itemdetail.msite

Alle 6 Produktseiten, die ich testweise abgerufen habe, hatten viewName = 'newDetail'. Die anderen 2 APIs, die mobile mtop.aliexpress.itemdetail.msite und mtop.aliexpress.itemdetail.pc.asyncPCDetail, waren nicht leichter zugänglich. Beide lieferten bei der ersten Anfrage FAIL_SYS_USER_VALIDATE mit bxpunish: 1, gesendet mit derselben Nutzlast, die die Desktop-API akzeptiert.

Lesen Sie viewName bei jedem Abruf, um zu erkennen, wann ein Listing beginnt, als andere Seitenvariante zu rendern. Ein Scraper, der fest auf einen API-Namen codiert ist, würde diese Änderung übersehen. Das Bootstrap-Skript der Seite setzt einen Prefetch-Timeout von 15.000 ms und bricht seine eigene XHR bei 10.000 ms ab. Verwenden Sie daher 10.000 ms als Obergrenze für Ihre eigenen Timeouts.

Im Netzwerk-Panel des Browsers, gefiltert nach pdp.pc.query, enthält die eigene Anfrage der Seite jeden Wert, den Ihr Signierungscode benötigt:

Chrome-DevTools-Netzwerk-Panel, gefiltert nach pdp.pc.query, im Payload-Tab einer Anfrage an mtop.aliexpress.pdp.pc.query, mit jsv 2.5.1, appKey 12574478, einem 13-stelligen t, einer 32-stelligen sign, type und dataType originaljsonp, timeout 15000, callback mtopjsonp1 und einem data-Objekt mit productId 3256801212552434 und einem ext-Block, wobei ein Token-Wert geschwärzt ist

Der eigene Aufruf der Seite, erfasst auf dem US-Shop, wo die ID dieses Listings 3256801212552434 lautet. Die Seite sendet originaljsonp und fügt einen timeout sowie einen ext-Block hinzu. Der untenstehende Signierungscode sendet jsonp und lässt beides weg, und das Gateway akzeptierte diese kürzere Anfrage. Ein Token-Wert ist geschwärzt.

Der sign-Wert verwendet das Alibaba-H5-Signierungsschema, das kurz genug ist, um es in einer Funktion nachzubilden. Das Schema verbindet das Sitzungstoken, den Zeitstempel, den App-Schlüssel und den exakten Anfragekörper mit kaufmännischen Und-Zeichen und hasht das Ergebnis dann mit MD5:

import hashlib, json, time
from curl_cffi import requests as cffi

APP_KEY, API, VER = "12574478", "mtop.aliexpress.pdp.pc.query", "1.0"
GATEWAY = f"https://acs.aliexpress.com/h5/{API}/{VER}/"

def sign(token, t, data):
    return hashlib.md5(f"{token}&{t}&{APP_KEY}&{data}".encode()).hexdigest()

def pdp(session, product_id, token=""):
    data = json.dumps({"productId": product_id, "_lang": "en_US", "_currency": "USD",
                       "country": "US", "province": "", "city": "", "channel": "",
                       "pdp_ext_f": "{}", "sourceType": "", "clientType": "pc"},
                      separators=(",", ":"))
    t = str(int(time.time() * 1000))
    params = {"jsv": "2.5.1", "appKey": APP_KEY, "t": t, "sign": sign(token, t, data),
              "api": API, "v": VER, "type": "jsonp", "dataType": "jsonp",
              "callback": "mtopjsonp1", "data": data}
    return session.get(GATEWAY, params=params, impersonate="chrome", timeout=30,
                       headers={"Referer": "https://www.aliexpress.com/"})

s = cffi.Session()
first = pdp(s, "1005001398867186")                       # unsigniert, liefert das Token-Cookie
token = s.cookies.get("_m_h5_tk", "").split("_")[0]
second = pdp(s, "1005001398867186", token)               # mit diesem Token signiert
print("call 1:", len(first.text), "bytes |", first.text[:60])
print("call 2:", len(second.text), "bytes")

Der erste Aufruf liefert das Token, und der zweite Aufruf liefert das Produkt:

call 1: 151 bytes | mtopjsonp1({"api":"mtop.aliexpress.pdp.pc.query","data":{},"ret
call 2: 103748 bytes

Aufruf 1 liefert FAIL_SYS_TOKEN_EMPTY und einen Set-Cookie-Header mit _m_h5_tk. Aufruf 2 ist mit dem ersten Teil dieses Cookie-Werts signiert und liefert JSONP, einen Funktionsaufruf um ein JSON-Objekt herum. Entfernt man den Wrapper mtopjsonp1(...), erhält man den vollständigen Produktdatensatz, einschließlich Titel, originalPrice 14,40 $, salePriceString 6,84 $, 59.924 Einheiten Lagerbestand, Bewertung 4,7, Verkäufer-ID 200422816 und categoryPath 13/5/141914.

Sie benötigen nur einen kleinen Teil dieser Nutzlast. Die Antwort hat 27 Module auf oberster Ebene, und 8 davon enthalten die Felder, die eine Preis- oder Sortiments-Pipeline speichern würde. Als kompaktes JSON serialisiert, sind diese 8 Module 16.494 Byte groß, was 15,9 % des gesamten Ergebnisobjekts entspricht. Das größte Modul ist SHIPPING mit 34.071 Byte, und das zweitgrößte ist GLOBAL_DATA mit 23.783 Byte.

Das Signieren benötigt nur einen MD5-Hash, ein Cookie und einen Wiederholungsversuch. Wenn Sie das H5-Signierungsschema bereits für eine andere Alibaba-Seite nachgebildet haben, rechnen Sie mit wenigen Stunden Arbeit. Doch wie lange funktioniert Ihr Signierungscode weiter?

Wie viele signierte API-Aufrufe von einer IP-Adresse erfolgreich sind

Den signierten Aufruf in einer Schleife auszuführen, beantwortet diese Frage schnell. Der Test verwendet 10 Produkt-IDs, ein Token, eine Residential-IP-Adresse und keine Verzögerung zwischen den Aufrufen. Das Skript zählt jeden ret-Code, den das Gateway zurückgibt:

# setzt die Sitzung aus dem Signierungscode fort: pdp(), s und token sind dort definiert
from collections import Counter
import re

# zehn Produkt-IDs, ersetzen Sie entfernte
IDS = ["3256812884305776", "1005007712136541", "1005002754717958", "1005002495501001",
       "2255799968025159", "1005008121783683", "3256809736486496", "1005008175462016",
       "1005012238762416", "3256812840307416"]

outcomes, first_fail = Counter(), None
for i in range(1, 61):
    r = pdp(s, IDS[i % len(IDS)], token)
    ret = re.search(r'"ret":\["([^"]+)"', r.text).group(1).split("::")[0]
    key = ret + (" +bxpunish" if r.headers.get("bxpunish") else "")
    outcomes[key] += 1
    if key != "SUCCESS" and first_fail is None:
        first_fail = i
print(dict(outcomes), "| first non-SUCCESS at", first_fail)

Die Schleife erhielt nach dem 7. Aufruf keine Daten mehr:

{'SUCCESS': 7, 'FAIL_SYS_USER_VALIDATE +bxpunish': 53} | first non-SUCCESS at 8

Das ret-Array jeder blockierten Antwort enthielt auch RGV587_ERROR::SM.

Die Blockierung wiederholte sich, aber die Erfolgsanzahl änderte sich. Ein zweiter Durchlauf von derselben IP-Adresse sendete 6,2 Anfragen pro Sekunde, protokollierte Statuscode und Antwortlänge jedes Aufrufs, erhielt 15 Erfolge bei 60 und wurde erstmals bei Anfrage 12 blockiert. Er lieferte HTTP 200 bei allen 60 Aufrufen, und alle 45 blockierten Antworten waren exakt 543 Byte groß. Basieren Sie Ihre Kapazitätsplanung daher auf der Blockierung, nicht auf einer der beiden Erfolgszahlen.

Eine neue Sitzung entfernte die Blockierung nicht. Jede von 3 neuen Sitzungen hintereinander startete mit einem leeren Cookie-Speicher und wurde blockiert, bevor der Client ein Token erhalten konnte. Eine Anfrage, gesendet nach 60 Sekunden Wartezeit, erneut mit leerem Cookie-Speicher, wurde ebenfalls blockiert. Ein automatischer Wiederholungsversuch fügt also Traffic hinzu, ohne Daten hinzuzufügen, und Proxy-Ingenieure warnen davor, dass solche Wiederholungslogik Budget verbraucht, ohne einen sichtbaren Fehler zu erzeugen.

Dieser Test verwendete keine Verzögerung zwischen den Aufrufen. Testen Sie als Nächstes die Variablen, die ein Produktions-Scraper hinzufügt, wie eine lange Rückwärtsverzögerung, ein neues Token pro Batch, eine bewusst langsame Anfragerate und den ext-Block, den die eigene Anfrage der Seite signiert. Dieser Block enthält ein crawler-Flag und einen x-m-biz-bx-region-Schlüssel.

Die Signatur blieb von Anfrage 7 bis Anfrage 60 korrekt, sodass weiteres Reverse Engineering die Erfolgszahlen von 7 und 15 bei 60 Anfragen wahrscheinlich nicht erhöht. Die Tests schließen die Sitzung als Ursache aus. Kein Test änderte die IP-Adresse und den Fingerabdruck getrennt voneinander, sodass die Blockierung von beidem abhängen könnte. Anti-Bot-Systeme können auch einen Fingerabdruck über viele IP-Adressen hinweg verknüpfen, weshalb Praktiker IP-Adresse, Fingerabdruck und Cookies zusammen ändern.

Drei Prüfungen zeigen, dass der Client nicht die Ursache ist. Beim Fingerabdruck-Echo von tls.peet.ws stimmte der Signierungscode auf curl_cffi 0.16.1 mit einem echten Chromium 152 auf dieser Maschine überein, mit demselben JA4-Fingerabdruck, t13d1516h2_8daaf6152771_806a8c22fdea, und demselben HTTP/2-Fingerabdruck. Fünf Fingerabdrücke von curl_cffi und den Rust-Bibliotheken rnet und wreq erzeugten 100 blockierte Antworten und kein Token, obwohl wreq neuere Chrome-Profile als curl_cffi 0.16.1 mitbringt. Patchright, nodriver und Camoufox hatten jeweils 0 Erfolge bei 8 Versuchen von dieser IP-Adresse aus, während Bright Datas Browser API über eine andere Exit-IP das Produkt in derselben Minute lieferte.

Diese IP-Adresse war bereits blockiert, als diese 3 Tools liefen, sodass alle 3 auf dieselbe Weise scheiterten. Die Nullen zeigen den Ruf der IP-Adresse, nicht eine Rangfolge der Tools.

Die erste Prüfung, das Fingerabdruck-Echo von TrackMe unter tls.peet.ws, liefert jeden Fingerabdruck aus einer einzigen Anfrage:

TrackMe-Fingerprinting-API-Seite mit JA3-, JA4-, p0f-, Akamai-HTTP/2- und PeetPrint-Fingerabdrücken für den anfragenden Client, mit einem JA4-Wert von t13d1516h2_8daaf6152771_806a8c22fdea und einem Akamai-HTTP/2-Fingerabdruck von 52d84b11737d980aef856699f885ca86, über einem Panel mit Anfragedetails, das TLS 772, HTTP/2 sowie unterstütztes TLS 1.3 und 1.2 zeigt

Prüfen Sie, ob ein Profil sowohl den JA4- als auch den HTTP/2-Fingerabdruck des Browsers reproduziert, nach dem es benannt ist.

Ein neueres Profil war hier keine bessere Übereinstimmung. Das Chrome-152-Profil von wreq sendete ein ClientHello mit 17 Erweiterungen, während Chrome 152 selbst 16 sendete. Die Versionsnummer im Namen eines Profils garantiert nicht den gesendeten Fingerabdruck. Prüfen Sie daher jedes Profil anhand eines Fingerabdruck-Echos, bevor Sie ihm vertrauen. Hier stimmte das Standardprofil von curl_cffi exakt mit dem echten Browser überein.

Reverse Engineering eines signierten Endpunkts zeigt, wie die Daten aussehen, aber nicht, wie viel davon Sie sammeln können. In diesen Tests erhöhte weder eine bessere Signatur noch ein besserer Browser diese Menge.

Die Seite Produkt-API-Aufrufe für Sie signieren lassen

Eine zweite Möglichkeit, die Produktnutzlast zu erhalten, nutzt Browser-Automatisierung anstelle von API-Aufrufen aus eigenem Code. Die Seite tätigt den signierten Aufruf bereits. Hängen Sie einen Antwort-Handler an und lesen Sie die Antworten, die die Seite erhält. Über die Browser API laufen auch die Anfragen der Seite durch das Proxy-Netzwerk von Bright Data.

Das Lesen der eigenen Antwort der Seite entfernt Token, Zeitstempel, MD5-Signatur und Cookie-Speicher aus Ihrem Code:

import json, re
from playwright.sync_api import sync_playwright

WSS = "wss://brd-customer--zone-:@brd.superproxy.io:9222"

def capture_pdp(product_id):
    """Liest die Antwort auf den Aufruf, den die Seite bereits tätigt."""
    bodies = []

    def keep(response):
        if "mtop.aliexpress.pdp.pc.query" not in response.url:
            return
        try:
            bodies.append(response.text())
        except Exception:
            pass                      # Weiterleitungen und geschlossene Seiten haben keinen lesbaren Body

    with sync_playwright() as pw:
        browser = pw.chromium.connect_over_cdp(WSS, timeout=150_000)
        ctx = browser.contexts[0] if browser.contexts else browser.new_context()
        page = ctx.new_page()
        page.on("response", keep)
        try:
            page.goto(f"https://www.aliexpress.com/item/{product_id}.html",
                      wait_until="domcontentloaded", timeout=150_000)
            page.wait_for_timeout(13_000)
        except Exception:
            pass                      # behalte, was keep() vor Navigationsende gesammelt hat
        browser.close()

    for body in sorted((b for b in bodies if isinstance(b, str)), key=len, reverse=True):
        m = re.match(r"\s*mtopjsonp\d*\((.*)\)\s*$", body, re.S)
        try:
            result = json.loads(m.group(1) if m else body).get("data", {}).get("result")
        except (ValueError, AttributeError):
            continue                  # überspringe einen Body, der kein JSON ist, z. B. eine HTML-Seite
        if isinstance(result, dict) and len(result) > 10:
            return result
    return None

result = capture_pdp("1005001398867186")
if result:
    print(len(result["PRICE"]["skuIdStrPriceInfoMap"]), "SKUs mit Preis")

WSS verbindet sich mit einer Browser-API-Zone, und ihre 3 Platzhalter stammen aus den Zugriffsdetails dieser Zone:

Bright-Data-Kontrollpanel auf dem Overview-Tab einer Browser-API-Zone namens scraping_browser2 unter Web Access, mit Zugriffsdetails mit dem Host brd.superproxy.io, einem Benutzernamen, einem maskierten Passwort und einem Puppeteer- und Playwright-Endpunkt, der wss://brd-customer-, eine geschwärzte Konto-ID, -zone-scraping_browser2, ein maskiertes Passwort und @brd.superproxy.io:9222 zeigt

Die Zeile Puppeteer / Playwright ist der Wert, den WSS erwartet, und Ihre Konto-ID, Ihr Zonenname und Ihr Passwort füllen die 3 Platzhalter. Die Konto-ID ist hier geschwärzt, und das Kontrollpanel maskiert das Passwort.

Behalten Sie jede Antwort, nicht nur die erste. Die Seite ruft diesen Endpunkt pro Ladevorgang mehr als einmal auf. Protokollieren Sie die Größe jedes Antwort-Bodys, den keep() sammelt, um zu sehen, welcher das Produkt enthält:

3256812884305776  sizes=[151, 170539]          141 SKUs mit Preis
1005007712136541  sizes=[151, 244023]           75 SKUs mit Preis
1005002754717958  sizes=[151, 105852, 106046]   20 SKUs mit Preis
1005002495501001  sizes=[151,  96065]           18 SKUs mit Preis
2255799968025159  sizes=[151,  93982]           15 SKUs mit Preis
1005008121783683  sizes=[151,  63780]            6 SKUs mit Preis

Die 151-Byte-Antwort setzt das Token-Cookie. Der große Antwort-Body danach enthält den Produktdatensatz, einschließlich der SKU-Preiskarte. Wenn ein Ladevorgang mehr als eine große Antwort hat, gibt capture_pdp die größte zurück.

Was die robots.txt-Dateien von AliExpress erlauben

Lesen Sie die robots.txt-Dateien, bevor Sie eine Methode wählen. Falls Ihnen eine Direktive unbekannt ist, erklärt sie unser Leitfaden zu robots.txt für Web-Scraping. Die Dateien auf dem API-Host und dem Haupt-Host haben unterschiedliche Regeln:

$ curl -s https://acs.aliexpress.com/robots.txt
User-agent: *
Disallow: /

$ curl -s https://www.aliexpress.com/robots.txt | grep -E '/item'
Disallow: */aeglodetailweb/api/msite/item?productId*
Disallow: /items/*
Disallow: /item-img/*
Disallow: /item-img/*

Das MTOP-Gateway ist vollständig verboten. Auf dem Haupt-Host betrifft jede Regel, die item erwähnt, etwas anderes (/items/*, /item-img/* und die Googlebot-Regel am Endpunkt aeglodetailweb). Keine Regel gilt für /item/1005001398867186.html, während das gesamte /search/* verboten ist. Nutzen Sie Bright Datas Residential-Proxys oder eine der unten beschriebenen Methoden für die Pfade, die robots.txt erlaubt.

Prüfen Sie auch die Sitemaps und Agent-Manifest-Dateien des Haupt-Hosts. Die .com-robots.txt listete Produkt-Sitemaps auf, und die erste Sitemap-Datei enthielt 31.999 /item/-URLs. Die Sitemaps sind also eine direkte Quelle für Produkt-IDs. Im Test leiteten die 6 Agent-Manifest-Pfade (/llms.txt und /ai.txt sowie agent.json, ai-plugin.json, mcp.json und acp.json unter /.well-known/) mit 302 zu /p/error/404.html weiter.

www.aliexpress.us/robots.txt hatte dieselben Regeln wie die .com-Datei, ohne die Sitemap-Zeilen. Da die Seite Besucher regional zwischen den 2 Hosts weiterleitet, gelten diese Regeln auf beiden Hosts. m.aliexpress.com veröffentlicht eine längere Datei mit einer eigenen AdsBot-Regel, prüfen Sie also den Host, den Sie aufrufen.

Ein AliExpress-Host veröffentlicht eine Ausnahme, den einzigen signierten API-Pfad, den eine dieser Dateien erlaubt. recom-acs.aliexpress.com liefert Disallow: / gefolgt von Allow: /h5/mtop.relationrecommend.aliexpressseorecommend.recommend/*. Bei Aufruf mit einer bewusst unvollständigen Nutzlast lieferte dieser Endpunkt FAIL_SYS_BIZPARAM_MISSED ohne bxpunish-Header, während die verbotenen Endpunkte FAIL_SYS_USER_VALIDATE mit diesem Header lieferten. robots.txt und das Anti-Bot-System erlaubten also denselben Endpunkt.

Die Produktseite ist das Gegenteil des Gateways. AliExpress stellt sie öffentlich bereit, robots.txt verbietet sie nicht, und jedes der 3 Bright-Data-Produkte griff im Test darauf zu. Ein Web-Unlocker-Rendering, die Gateway-Antwort und ein Scraper-API-Datensatz hatten in US-Locale-Tests alle denselben Verkaufspreis von 6,84 $.

Scrapen Sie die Seiten, die die Website öffentlich macht, und lassen Sie Ihre Infrastruktur IP-Adressen und Fingerabdrücke übernehmen. Dieser Ansatz bricht seltener nach einem Redesign oder einer Signaturänderung, während eine aus dem JavaScript-Bundle der Website kopierte Signierungsroutine nach jedem von beiden neu erstellt werden muss.

3 Methoden zum Scrapen von AliExpress im großen Maßstab

Bright Datas Browser API, Web Unlocker und Scraper API liefern die Produktdaten jeweils in unterschiedlicher Form. Unser Vergleich von Web Unlocker und der Browser API erklärt den allgemeinen Unterschied. Die Suche nach AliExpress in der Scrapers Library des Kontrollpanels zeigt die für diese Domain verfügbaren Scraper:

Suchergebnisse der Bright-Data-Scrapers-Library für

Eine Suche liefert die Scraper der Domain und einen gebrauchsfertigen AliExpress-Datensatz.

Die Browser API führt Ihr Skript in einem verwalteten Cloud-Browser mit eingebauter Entsperrung aus und erlaubt Ihrem Skript, die Netzwerkantworten zu lesen, die die Seite erhält. Als ich Playwright über CDP verband und die Produktseite lud, zeigte die Seite den Titel und eine Kaufbox mit ihrem Preis, und mein Skript konnte alle 171 Antworten dieses einen Ladevorgangs lesen. Die Browser API unterstützt auch Geolocation-Targeting, sodass die Kaufbox Preise in der Währung des gewählten Exit-Landes zeigt. Für US-Preise hängen Sie -country-us an den Zonen-Benutzernamen an.

Die Preisgestaltung der Browser API erfolgt pro GB Traffic, sodass das Seitengewicht Ihnen erlaubt, die Kosten eines Durchlaufs vorab zu schätzen. Über 3 Ladevorgänge hinweg betrugen die übertragenen Bytes in CDPs Network.loadingFinished-Ereignissen durchschnittlich 3,03 MB pro Produktseite, mit einer Spanne von 2,68 MB bis 3,47 MB. Playwrights networkidle wartet 500 ms ohne Anfragen, aber diese Seite sendete weiterhin Anfragen im Hintergrund. Daher wartet capture_pdp auf domcontentloaded und dann eine feste Zeit.

Web Unlocker übernimmt die Entsperrung, rendert die Seite und liefert ein Dokument. Seine Rohausgabe für die Produktseite betrug 344.355 Byte, verglichen mit der 77.226-Byte-Hülle, sodass das JavaScript ausgeführt wurde. Seine Markdown-Ausgabe für diese Seite waren 21 KB bis 24 KB Text, den ein LLM oder ein Regex direkt lesen kann. Der Befehl brightdata scrape in der Bright Data CLI verwendet standardmäßig Markdown-Ausgabe.

Die Web-Unlocker-Preisgestaltung erfolgt pro Anfrage, und Sie zahlen nur für erfolgreiche. Setzen Sie country bei jeder Anfrage, um den Shop auszuwählen.

Das Signierungsschema von AliExpress passt in eine Funktion, aber im Test blockierte das Gateway Aufrufe von einer IP-Adresse innerhalb des ersten Dutzends Anfragen, selbst mit korrekter Signatur. Da eine Blockierung einen Erfolgsstatuscode zurückgeben kann, basieren Sie jede Prüfung auf dem bxpunish-Header und auf einem Feld, das jedes Produkt hat, wie den Preis. Die robots.txt der Website verbietet den öffentlichen /item/-Pfad nicht, das ist also der Pfad, den Sie im großen Maßstab scrapen sollten.

Bright Datas AliExpress Scraper API liefert strukturierte Datensätze für diese Produktseiten, die Browser API erfasst den Preis jeder Variante, und der AliExpress-Datensatz eignet sich für marktweite Fragen. Starten Sie mit der kostenlosen Stufe, die 5.000 Anfragen pro Monat ohne Kreditkarte umfasst. Testen Sie sie mit 40 URLs aus Ihrem Katalog und prüfen Sie die Datensätze anhand der von Ihrer Pipeline benötigten Felder.

FAQ

Hat AliExpress eine API für Produktdaten?

Ja, für Verkäufer, Partner und genehmigte Dropshipper. Auf der AliExpress Open Platform autorisiert ein Verkäufer eine App für seinen eigenen Shop über OAuth 2.0, und die Partner-API deckt den Werbekatalog ab. Keine davon deckt den gesamten Marktplatz ab, sodass marktweite Preisdaten eine E-Commerce-Datenerfassung benötigen.

Wie erhalte ich eine AliExpress-Produkt-URL oder -ID?

Produkt-URLs folgen dem Muster /item/<item_id>.html, und die Entdeckung beginnt bei /w/wholesale-<keyword>.html. IDs hängen vom Host ab. Ein Produkt hat die ID 1005001398867186 auf .com und 3256801212552434 auf .us. Schlüsseln Sie jedes Produkt nach seiner endgültigen URL nach der regionalen Weiterleitung, damit es nicht unter 2 IDs erscheint.

Ist das Scraping von AliExpress-Produktdaten kostenlos?

Ja, im kleinen Maßstab. Bright Datas kostenlose Stufe umfasst 5.000 Anfragen pro Monat ohne Kreditkarte und deckt die Scraper API, Web Unlocker und die Browser API ab, sodass Sie sie zunächst mit Ihren eigenen URLs testen können. Playwright und curl_cffi sind Open Source. Im Produktionsmaßstab zahlen Sie hauptsächlich für IP-Adressen, da 2 Durchläufe mit je 60 signierten API-Aufrufen von einer IP-Adresse 7 bzw. 15 Mal Daten erhielten.

Was kostet eine AliExpress-Scraper-API?

Bright Datas AliExpress Scraper API wird pro geliefertem Datensatz berechnet, und Web Unlocker wird pro erfolgreicher Anfrage berechnet, sodass Sie nur für Ergebnisse zahlen. Die Browser API wird nach Traffic berechnet, sodass das Seitengewicht die Kosten vorhersagt. Eine Produktseite wog im Test etwa 3 MB. Aktuelle Preise finden Sie auf Bright Datas Preisseite.

Warum liefert mein AliExpress-Scraper leere Felder?

Weil das anfängliche HTML keine Preise oder Lagerbestände enthält. window.runParams ist ein leeres Objekt und <title> ist leer, sodass selektorbasierte Extraktoren nichts finden und keinen Fehler auslösen. Das JavaScript der Seite lädt die Felder später von mtop.aliexpress.pdp.pc.query nach. Führen Sie entweder das JavaScript aus oder rufen Sie diese API direkt auf.

Wie vermeide ich Blockierungen beim Scraping von AliExpress?

Senden Sie Anfragen über Bright Datas Scraper API oder Web Unlocker, die eingebaute Proxys und AliExpress-CAPTCHA-Lösung haben. Im Test entfernte weder ein neuer Cookie-Speicher noch eine 60-sekündige Wartezeit eine Blockierung von einer IP-Adresse. Blockierte Anfragen lieferten auch HTTP 200, prüfen Sie also den bxpunish-Header, nicht den Statuscode.

Warum ändern sich AliExpress-Preise?

Weil Aktionen befristet sind und je nach Land variieren. In einem Test über 6 Exit-Länder reichte der Rabatt eines Produkts von 52,5 % bis hinunter zu 4,1 % auf den Listenpreis, und die Länder unterschieden sich darin, ob Preise Steuern enthielten. Legen Sie für jede Preisreihe ein Exit-Land fest und speichern Sie es in der Zeile.

Gibt es einen AliExpress-MCP-Server?

Ja. Bright Datas MCP Server erlaubt es einem KI-Agenten, AliExpress-Produktseiten über dessen Tools scrape_as_markdown und scrape_batch abzurufen, die die Entsperrung übernehmen und Markdown liefern. In einem Testaufruf lieferte scrape_as_markdown Preis, Bewertung, Varianten und Kategoriepfad des Produkts. Die AliExpress-MCP-Seite erklärt die Einrichtung.

Der AliExpress-Datensatz reduziert Auswahlaufwand und Sammelzeit. Sie filtern den Datensatz auf die benötigten Einträge, im Marketplace oder über die Filter Dataset API, und zahlen nur für Ihren gefilterten Snapshot. Diese Einträge existieren bereits, es gibt also keinen Sammeldurchlauf, auf den gewartet werden muss. Sie können ihn einmalig oder nach einem von Ihnen gewählten Aktualisierungsplan kaufen, und aktuelle Preise finden Sie auf der Preisseite für Datensätze.

Schätzen Sie die Liefergröße, bevor Sie bestellen. Einträge in der Datensatzprobe sind im Durchschnitt 12,75 KB als gelieferte JSON-Datei groß, planen Sie also mit etwa 1,3 GB pro 100.000 Einträgen. Der Datensatz wird auch im Parquet-Format geliefert, und dieselbe Probe war als Parquet fast 8-mal kleiner. Dieser Größenunterschied kann entscheiden, ob Sie die Datei direkt abfragen oder zuerst zwischenspeichern.

Verwenden Sie den Datensatz für marktweite Sortiments- und Abdeckungsfragen, und verwenden Sie die Scraper API für die konkreten Listings, die Sie verfolgen. Der Datensatz wird nach dem von Ihnen gewählten Plan aktualisiert, und eine Scraper-API-Sammlung liefert jedes Listing zum Zeitpunkt der Ausführung.

Fazit

Das Signierungsschema von AliExpress passt in eine Funktion, aber im Test blockierte das Gateway Aufrufe von einer IP-Adresse innerhalb des ersten Dutzends Anfragen, selbst mit korrekter Signatur. Da eine Blockierung einen Erfolgsstatuscode zurückgeben kann, basieren Sie jede Prüfung auf dem bxpunish-Header und auf einem Feld, das jedes Produkt hat, wie den Preis. Die robots.txt der Website verbietet den öffentlichen /item/-Pfad nicht, das ist also der Pfad, den Sie im großen Maßstab scrapen sollten.

Bright Datas AliExpress Scraper API liefert strukturierte Datensätze für diese Produktseiten, die Browser API erfasst den Preis jeder Variante, und der AliExpress-Datensatz eignet sich für marktweite Fragen. Starten Sie mit der kostenlosen Stufe, die 5.000 Anfragen pro Monat ohne Kreditkarte umfasst. Testen Sie sie mit 40 URLs aus Ihrem Katalog und prüfen Sie die Datensätze anhand der von Ihrer Pipeline benötigten Felder.

FAQ

Hat AliExpress eine API für Produktdaten?

Ja, für Verkäufer, Partner und genehmigte Dropshipper. Auf der AliExpress Open Platform autorisiert ein Verkäufer eine App für seinen eigenen Shop über OAuth 2.0, und die Partner-API deckt den Werbekatalog ab. Keine davon deckt den gesamten Marktplatz ab, sodass marktweite Preisdaten eine E-Commerce-Datenerfassung benötigen.

Wie erhalte ich eine AliExpress-Produkt-URL oder -ID?

Produkt-URLs folgen dem Muster /item/<item_id>.html, und die Entdeckung beginnt bei /w/wholesale-<keyword>.html. IDs hängen vom Host ab. Ein Produkt hat die ID 1005001398867186 auf .com und 3256801212552434 auf .us. Schlüsseln Sie jedes Produkt nach seiner endgültigen URL nach der regionalen Weiterleitung, damit es nicht unter 2 IDs erscheint.

Ist das Scraping von AliExpress-Produktdaten kostenlos?

Ja, im kleinen Maßstab. Bright Datas kostenlose Stufe umfasst 5.000 Anfragen pro Monat ohne Kreditkarte und deckt die Scraper API, Web Unlocker und die Browser API ab, sodass Sie sie zunächst mit Ihren eigenen URLs testen können. Playwright und curl_cffi sind Open Source. Im Produktionsmaßstab zahlen Sie hauptsächlich für IP-Adressen, da 2 Durchläufe mit je 60 signierten API-Aufrufen von einer IP-Adresse 7 bzw. 15 Mal Daten erhielten.

Was kostet eine AliExpress-Scraper-API?

Bright Datas AliExpress Scraper API wird pro geliefertem Datensatz berechnet, und Web Unlocker wird pro erfolgreicher Anfrage berechnet, sodass Sie nur für Ergebnisse zahlen. Die Browser API wird nach Traffic berechnet, sodass das Seitengewicht die Kosten vorhersagt. Eine Produktseite wog im Test etwa 3 MB. Aktuelle Preise finden Sie auf Bright Datas Preisseite.

Warum liefert mein AliExpress-Scraper leere Felder?

Weil das anfängliche HTML keine Preise oder Lagerbestände enthält. window.runParams ist ein leeres Objekt und <title> ist leer, sodass selektorbasierte Extraktoren nichts finden und keinen Fehler auslösen. Das JavaScript der Seite lädt die Felder später von mtop.aliexpress.pdp.pc.query nach. Führen Sie entweder das JavaScript aus oder rufen Sie diese API direkt auf.

Wie vermeide ich Blockierungen beim Scraping von AliExpress?

Senden Sie Anfragen über Bright Datas Scraper API oder Web Unlocker, die eingebaute Proxys und AliExpress-CAPTCHA-Lösung haben. Im Test entfernte weder ein neuer Cookie-Speicher noch eine 60-sekündige Wartezeit eine Blockierung von einer IP-Adresse. Blockierte Anfragen lieferten auch HTTP 200, prüfen Sie also den bxpunish-Header, nicht den Statuscode.

Warum ändern sich AliExpress-Preise?

Weil Aktionen befristet sind und je nach Land variieren. In einem Test über 6 Exit-Länder reichte der Rabatt eines Produkts von 52,5 % bis hinunter zu 4,1 % auf den Listenpreis, und die Länder unterschieden sich darin, ob Preise Steuern enthielten. Legen Sie für jede Preisreihe ein Exit-Land fest und speichern Sie es in der Zeile.

Gibt es einen AliExpress-MCP-Server?

Ja. Bright Datas MCP Server erlaubt es einem KI-Agenten, AliExpress-Produktseiten über dessen Tools scrape_as_markdown und scrape_batch abzurufen, die die Entsperrung übernehmen und Markdown liefern. In einem Testaufruf lieferte scrape_as_markdown Preis, Bewertung, Varianten und Kategoriepfad des Produkts. Die AliExpress-MCP-Seite erklärt die Einrichtung.

Schätzen Sie die Liefergröße, bevor Sie bestellen. Einträge in der Datensatzprobe sind im Durchschnitt 12,75 KB als gelieferte JSON-Datei groß, planen Sie also mit etwa 1,3 GB pro 100.000 Einträgen. Der Datensatz wird auch im Parquet-Format geliefert, und dieselbe Probe war als Parquet fast 8-mal kleiner. Dieser Größenunterschied kann entscheiden, ob Sie die Datei direkt abfragen oder zuerst zwischenspeichern.

Verwenden Sie den Datensatz für marktweite Sortiments- und Abdeckungsfragen, und verwenden Sie die Scraper API für die konkreten Listings, die Sie verfolgen. Der Datensatz wird nach dem von Ihnen gewählten Plan aktualisiert, und eine Scraper-API-Sammlung liefert jedes Listing zum Zeitpunkt der Ausführung.

Fazit

Das Signierungsschema von AliExpress passt in eine Funktion, aber im Test blockierte das Gateway Aufrufe von einer IP-Adresse innerhalb des ersten Dutzends Anfragen, selbst mit korrekter Signatur. Da eine Blockierung einen Erfolgsstatuscode zurückgeben kann, basieren Sie jede Prüfung auf dem bxpunish-Header und auf einem Feld, das jedes Produkt hat, wie den Preis. Die robots.txt der Website verbietet den öffentlichen /item/-Pfad nicht, das ist also der Pfad, den Sie im großen Maßstab scrapen sollten.

Bright Datas AliExpress Scraper API liefert strukturierte Datensätze für diese Produktseiten, die Browser API erfasst den Preis jeder Variante, und der AliExpress-Datensatz eignet sich für marktweite Fragen. Starten Sie mit der kostenlosen Stufe, die 5.000 Anfragen pro Monat ohne Kreditkarte umfasst. Testen Sie sie mit 40 URLs aus Ihrem Katalog und prüfen Sie die Datensätze anhand der von Ihrer Pipeline benötigten Felder.

FAQ

Hat AliExpress eine API für Produktdaten?

Ja, für Verkäufer, Partner und genehmigte Dropshipper. Auf der AliExpress Open Platform autorisiert ein Verkäufer eine App für seinen eigenen Shop über OAuth 2.0, und die Partner-API deckt den Werbekatalog ab. Keine davon deckt den gesamten Marktplatz ab, sodass marktweite Preisdaten eine E-Commerce-Datenerfassung benötigen.

Wie erhalte ich eine AliExpress-Produkt-URL oder -ID?

Produkt-URLs folgen dem Muster /item/<item_id>.html, und die Entdeckung beginnt bei /w/wholesale-<keyword>.html. IDs hängen vom Host ab. Ein Produkt hat die ID 1005001398867186 auf .com und 3256801212552434 auf .us. Schlüsseln Sie jedes Produkt nach seiner endgültigen URL nach der regionalen Weiterleitung, damit es nicht unter 2 IDs erscheint.

Ist das Scraping von AliExpress-Produktdaten kostenlos?

Ja, im kleinen Maßstab. Bright Datas kostenlose Stufe umfasst 5.000 Anfragen pro Monat ohne Kreditkarte und deckt die Scraper API, Web Unlocker und die Browser API ab, sodass Sie sie zunächst mit Ihren eigenen URLs testen können. Playwright und curl_cffi sind Open Source. Im Produktionsmaßstab zahlen Sie hauptsächlich für IP-Adressen, da 2 Durchläufe mit je 60 signierten API-Aufrufen von einer IP-Adresse 7 bzw. 15 Mal Daten erhielten.

Was kostet eine AliExpress-Scraper-API?

Bright Datas AliExpress Scraper API wird pro geliefertem Datensatz berechnet, und Web Unlocker wird pro erfolgreicher Anfrage berechnet, sodass Sie nur für Ergebnisse zahlen. Die Browser API wird nach Traffic berechnet, sodass das Seitengewicht die Kosten vorhersagt. Eine Produktseite wog im Test etwa 3 MB. Aktuelle Preise finden Sie auf Bright Datas Preisseite.

Warum liefert mein AliExpress-Scraper leere Felder?

Weil das anfängliche HTML keine Preise oder Lagerbestände enthält. window.runParams ist ein leeres Objekt und <title> ist leer, sodass selektorbasierte Extraktoren nichts finden und keinen Fehler auslösen. Das JavaScript der Seite lädt die Felder später von mtop.aliexpress.pdp.pc.query nach. Führen Sie entweder das JavaScript aus oder rufen Sie diese API direkt auf.

Wie vermeide ich Blockierungen beim Scraping von AliExpress?

Senden Sie Anfragen über Bright Datas Scraper API oder Web Unlocker, die eingebaute Proxys und AliExpress-CAPTCHA-Lösung haben. Im Test entfernte weder ein neuer Cookie-Speicher noch eine 60-sekündige Wartezeit eine Blockierung von einer IP-Adresse. Blockierte Anfragen lieferten auch HTTP 200, prüfen Sie also den bxpunish-Header, nicht den Statuscode.

Warum ändern sich AliExpress-Preise?

Weil Aktionen befristet sind und je nach Land variieren. In einem Test über 6 Exit-Länder reichte der Rabatt eines Produkts von 52,5 % bis hinunter zu 4,1 % auf den Listenpreis, und die Länder unterschieden sich darin, ob Preise Steuern enthielten. Legen Sie für jede Preisreihe ein Exit-Land fest und speichern Sie es in der Zeile.

Gibt es einen AliExpress-MCP-Server?

Ja. Bright Datas MCP Server erlaubt es einem KI-Agenten, AliExpress-Produktseiten über dessen Tools scrape_as_markdown und scrape_batch abzurufen, die die Entsperrung übernehmen und Markdown liefern. In einem Testaufruf lieferte scrape_as_markdown Preis, Bewertung, Varianten und Kategoriepfad des Produkts. Die AliExpress-MCP-Seite erklärt die Einrichtung.

Der AliExpress-Datensatz reduziert Auswahlaufwand und Sammelzeit. Sie filtern den Datensatz auf die benötigten Einträge, im Marketplace oder über die Filter Dataset API, und zahlen nur für Ihren gefilterten Snapshot. Diese Einträge existieren bereits, es gibt also keinen Sammeldurchlauf, auf den gewartet werden muss. Sie können ihn einmalig oder nach einem von Ihnen gewählten Aktualisierungsplan kaufen, und aktuelle Preise finden Sie auf der Preisseite für Datensätze.

Schätzen Sie die Liefergröße, bevor Sie bestellen. Einträge in der Datensatzprobe sind im Durchschnitt 12,75 KB als gelieferte JSON-Datei groß, planen Sie also mit etwa 1,3 GB pro 100.000 Einträgen. Der Datensatz wird auch im Parquet-Format geliefert, und dieselbe Probe war als Parquet fast 8-mal kleiner. Dieser Größenunterschied kann entscheiden, ob Sie die Datei direkt abfragen oder zuerst zwischenspeichern.

Verwenden Sie den Datensatz für marktweite Sortiments- und Abdeckungsfragen, und verwenden Sie die Scraper API für die konkreten Listings, die Sie verfolgen. Der Datensatz wird nach dem von Ihnen gewählten Plan aktualisiert, und eine Scraper-API-Sammlung liefert jedes Listing zum Zeitpunkt der Ausführung.

Fazit

Das Signierungsschema von AliExpress passt in eine Funktion, aber im Test blockierte das Gateway Aufrufe von einer IP-Adresse innerhalb des ersten Dutzends Anfragen, selbst mit korrekter Signatur. Da eine Blockierung einen Erfolgsstatuscode zurückgeben kann, basieren Sie jede Prüfung auf dem bxpunish-Header und auf einem Feld, das jedes Produkt hat, wie den Preis. Die robots.txt der Website verbietet den öffentlichen /item/-Pfad nicht, das ist also der Pfad, den Sie im großen Maßstab scrapen sollten.

Bright Datas AliExpress Scraper API liefert strukturierte Datensätze für diese Produktseiten, die Browser API erfasst den Preis jeder Variante, und der AliExpress-Datensatz eignet sich für marktweite Fragen. Starten Sie mit der kostenlosen Stufe, die 5.000 Anfragen pro Monat ohne Kreditkarte umfasst. Testen Sie sie mit 40 URLs aus Ihrem Katalog und prüfen Sie die Datensätze anhand der von Ihrer Pipeline benötigten Felder.

FAQ

Hat AliExpress eine API für Produktdaten?

Ja, für Verkäufer, Partner und genehmigte Dropshipper. Auf der AliExpress Open Platform autorisiert ein Verkäufer eine App für seinen eigenen Shop über OAuth 2.0, und die Partner-API deckt den Werbekatalog ab. Keine davon deckt den gesamten Marktplatz ab, sodass marktweite Preisdaten eine E-Commerce-Datenerfassung benötigen.

Wie erhalte ich eine AliExpress-Produkt-URL oder -ID?

Produkt-URLs folgen dem Muster /item/<item_id>.html, und die Entdeckung beginnt bei /w/wholesale-<keyword>.html. IDs hängen vom Host ab. Ein Produkt hat die ID 1005001398867186 auf .com und 3256801212552434 auf .us. Schlüsseln Sie jedes Produkt nach seiner endgültigen URL nach der regionalen Weiterleitung, damit es nicht unter 2 IDs erscheint.

Ist das Scraping von AliExpress-Produktdaten kostenlos?

Ja, im kleinen Maßstab. Bright Datas kostenlose Stufe umfasst 5.000 Anfragen pro Monat ohne Kreditkarte und deckt die Scraper API, Web Unlocker und die Browser API ab, sodass Sie sie zunächst mit Ihren eigenen URLs testen können. Playwright und curl_cffi sind Open Source. Im Produktionsmaßstab zahlen Sie hauptsächlich für IP-Adressen, da 2 Durchläufe mit je 60 signierten API-Aufrufen von einer IP-Adresse 7 bzw. 15 Mal Daten erhielten.

Was kostet eine AliExpress-Scraper-API?

Bright Datas AliExpress Scraper API wird pro geliefertem Datensatz berechnet, und Web Unlocker wird pro erfolgreicher Anfrage berechnet, sodass Sie nur für Ergebnisse zahlen. Die Browser API wird nach Traffic berechnet, sodass das Seitengewicht die Kosten vorhersagt. Eine Produktseite wog im Test etwa 3 MB. Aktuelle Preise finden Sie auf Bright Datas Preisseite.

Warum liefert mein AliExpress-Scraper leere Felder?

Weil das anfängliche HTML keine Preise oder Lagerbestände enthält. window.runParams ist ein leeres Objekt und <title> ist leer, sodass selektorbasierte Extraktoren nichts finden und keinen Fehler auslösen. Das JavaScript der Seite lädt die Felder später von mtop.aliexpress.pdp.pc.query nach. Führen Sie entweder das JavaScript aus oder rufen Sie diese API direkt auf.

Wie vermeide ich Blockierungen beim Scraping von AliExpress?

Senden Sie Anfragen über Bright Datas Scraper API oder Web Unlocker, die eingebaute Proxys und AliExpress-CAPTCHA-Lösung haben. Im Test entfernte weder ein neuer Cookie-Speicher noch eine 60-sekündige Wartezeit eine Blockierung von einer IP-Adresse. Blockierte Anfragen lieferten auch HTTP 200, prüfen Sie also den bxpunish-Header, nicht den Statuscode.

Warum ändern sich AliExpress-Preise?

Weil Aktionen befristet sind und je nach Land variieren. In einem Test über 6 Exit-Länder reichte der Rabatt eines Produkts von 52,5 % bis hinunter zu 4,1 % auf den Listenpreis, und die Länder unterschieden sich darin, ob Preise Steuern enthielten. Legen Sie für jede Preisreihe ein Exit-Land fest und speichern Sie es in der Zeile.

Gibt es einen AliExpress-MCP-Server?

Ja. Bright Datas MCP Server erlaubt es einem KI-Agenten, AliExpress-Produktseiten über dessen Tools scrape_as_markdown und scrape_batch abzurufen, die die Entsperrung übernehmen und Markdown liefern. In einem Testaufruf lieferte scrape_as_markdown Preis, Bewertung, Varianten und Kategoriepfad des Produkts. Die AliExpress-MCP-Seite erklärt die Einrichtung.

Schätzen Sie die Liefergröße, bevor Sie bestellen. Einträge in der Datensatzprobe sind im Durchschnitt 12,75 KB als gelieferte JSON-Datei groß, planen Sie also mit etwa 1,3 GB pro 100.000 Einträgen. Der Datensatz wird auch im Parquet-Format geliefert, und dieselbe Probe war als Parquet fast 8-mal kleiner. Dieser Größenunterschied kann entscheiden, ob Sie die Datei direkt abfragen oder zuerst zwischenspeichern.

Verwenden Sie den Datensatz für marktweite Sortiments- und Abdeckungsfragen, und verwenden Sie die Scraper API für die konkreten Listings, die Sie verfolgen. Der Datensatz wird nach dem von Ihnen gewählten Plan aktualisiert, und eine Scraper-API-Sammlung liefert jedes Listing zum Zeitpunkt der Ausführung.

Fazit

Das Signierungsschema von AliExpress passt in eine Funktion, aber im Test blockierte das Gateway Aufrufe von einer IP-Adresse innerhalb des ersten Dutzends Anfragen, selbst mit korrekter Signatur. Da eine Blockierung einen Erfolgsstatuscode zurückgeben kann, basieren Sie jede Prüfung auf dem bxpunish-Header und auf einem Feld, das jedes Produkt hat, wie den Preis. Die robots.txt der Website verbietet den öffentlichen /item/-Pfad nicht, das ist also der Pfad, den Sie im großen Maßstab scrapen sollten.

Bright Datas AliExpress Scraper API liefert strukturierte Datensätze für diese Produktseiten, die Browser API erfasst den Preis jeder Variante, und der AliExpress-Datensatz eignet sich für marktweite Fragen. Starten Sie mit der kostenlosen Stufe, die 5.000 Anfragen pro Monat ohne Kreditkarte umfasst. Testen Sie sie mit 40 URLs aus Ihrem Katalog und prüfen Sie die Datensätze anhand der von Ihrer Pipeline benötigten Felder.

FAQ

Hat AliExpress eine API für Produktdaten?

Ja, für Verkäufer, Partner und genehmigte Dropshipper. Auf der AliExpress Open Platform autorisiert ein Verkäufer eine App für seinen eigenen Shop über OAuth 2.0, und die Partner-API deckt den Werbekatalog ab. Keine davon deckt den gesamten Marktplatz ab, sodass marktweite Preisdaten eine E-Commerce-Datenerfassung benötigen.

Wie erhalte ich eine AliExpress-Produkt-URL oder -ID?

Produkt-URLs folgen dem Muster /item/<item_id>.html, und die Entdeckung beginnt bei /w/wholesale-<keyword>.html. IDs hängen vom Host ab. Ein Produkt hat die ID 1005001398867186 auf .com und 3256801212552434 auf .us. Schlüsseln Sie jedes Produkt nach seiner endgültigen URL nach der regionalen Weiterleitung, damit es nicht unter 2 IDs erscheint.

Ist das Scraping von AliExpress-Produktdaten kostenlos?

Ja, im kleinen Maßstab. Bright Datas kostenlose Stufe umfasst 5.000 Anfragen pro Monat ohne Kreditkarte und deckt die Scraper API, Web Unlocker und die Browser API ab, sodass Sie sie zunächst mit Ihren eigenen URLs testen können. Playwright und curl_cffi sind Open Source. Im Produktionsmaßstab zahlen Sie hauptsächlich für IP-Adressen, da 2 Durchläufe mit je 60 signierten API-Aufrufen von einer IP-Adresse 7 bzw. 15 Mal Daten erhielten.

Was kostet eine AliExpress-Scraper-API?

Bright Datas AliExpress Scraper API wird pro geliefertem Datensatz berechnet, und Web Unlocker wird pro erfolgreicher Anfrage berechnet, sodass Sie nur für Ergebnisse zahlen. Die Browser API wird nach Traffic berechnet, sodass das Seitengewicht die Kosten vorhersagt. Eine Produktseite wog im Test etwa 3 MB. Aktuelle Preise finden Sie auf Bright Datas Preisseite.

Warum liefert mein AliExpress-Scraper leere Felder?

Weil das anfängliche HTML keine Preise oder Lagerbestände enthält. window.runParams ist ein leeres Objekt und <title> ist leer, sodass selektorbasierte Extraktoren nichts finden und keinen Fehler auslösen. Das JavaScript der Seite lädt die Felder später von mtop.aliexpress.pdp.pc.query nach. Führen Sie entweder das JavaScript aus oder rufen Sie diese API direkt auf.

Wie vermeide ich Blockierungen beim Scraping von AliExpress?

Senden Sie Anfragen über Bright Datas Scraper API oder Web Unlocker, die eingebaute Proxys und AliExpress-CAPTCHA-Lösung haben. Im Test entfernte weder ein neuer Cookie-Speicher noch eine 60-sekündige Wartezeit eine Blockierung von einer IP-Adresse. Blockierte Anfragen lieferten auch HTTP 200, prüfen Sie also den bxpunish-Header, nicht den Statuscode.

Warum ändern sich AliExpress-Preise?

Weil Aktionen befristet sind und je nach Land variieren. In einem Test über 6 Exit-Länder reichte der Rabatt eines Produkts von 52,5 % bis hinunter zu 4,1 % auf den Listenpreis, und die Länder unterschieden sich darin, ob Preise Steuern enthielten. Legen Sie für jede Preisreihe ein Exit-Land fest und speichern Sie es in der Zeile.

Gibt es einen AliExpress-MCP-Server?

Ja. Bright Datas MCP Server erlaubt es einem KI-Agenten, AliExpress-Produktseiten über dessen Tools scrape_as_markdown und scrape_batch abzurufen, die die Entsperrung übernehmen und Markdown liefern. In einem Testaufruf lieferte scrape_as_markdown Preis, Bewertung, Varianten und Kategoriepfad des Produkts. Die AliExpress-MCP-Seite erklärt die Einrichtung.

Ein dritter Fingerabdruck der erfassten Nutzlast scheint nützlich, kann aber zu Fehlalarmen führen. Das Hashen der Modulmenge scheint dieselbe Idee zu sein, aber die Modulanzahl variierte mit dem Listing und dem Erfassungszeitpunkt, nicht nur mit einer neuen Bereitstellung. Die erfassten Nutzlasten hatten 28, 27 und 28 Module, und die PRICE-Schlüsselmenge unterschied sich zwischen 2 von ihnen.

Die Anzahl änderte sich auch innerhalb eines Produkts. Dieselbe Produkt-ID lieferte 27 Module und dann, Minuten später bei 2 Erfassungen, 26, sodass selbst eine produktbezogene Historie eher einen Schwellenwert als eine Gleichheitsprüfung benötigt. Basieren Sie Ihre Warnungen auf den Hüllen- und Zeilen-Fingerabdrücken, da deren Werte bei jeder Erfassung gleich blieben.

Wann Sie stattdessen den AliExpress-Datensatz kaufen sollten

Alle 3 Methoden starten mit bereits vorhandenen URLs. Wenn Ihre Frage den gesamten Markt betrifft, beginnen Sie mit dem gebrauchsfertigen Datensatz:

Bright-Data-Dataset-Marketplace-Seite für

Das Filterpanel erlaubt es Ihnen, Datensätze auszuwählen, bevor Sie dafür bezahlen.

Der AliExpress-Datensatz reduziert Auswahlaufwand und Sammelzeit. Sie filtern den Datensatz auf die benötigten Einträge, im Marketplace oder über die Filter Dataset API, und zahlen nur für Ihren gefilterten Snapshot. Diese Einträge existieren bereits, es gibt also keinen Sammeldurchlauf, auf den gewartet werden muss. Sie können ihn einmalig oder nach einem von Ihnen gewählten Aktualisierungsplan kaufen, und aktuelle Preise finden Sie auf der Preisseite für Datensätze.

Schätzen Sie die Liefergröße, bevor Sie bestellen. Einträge in der Datensatzprobe sind im Durchschnitt 12,75 KB als gelieferte JSON-Datei groß, planen Sie also mit etwa 1,3 GB pro 100.000 Einträgen. Der Datensatz wird auch im Parquet-Format geliefert, und dieselbe Probe war als Parquet fast 8-mal kleiner. Dieser Größenunterschied kann entscheiden, ob Sie die Datei direkt abfragen oder zuerst zwischenspeichern.

Verwenden Sie den Datensatz für marktweite Sortiments- und Abdeckungsfragen, und verwenden Sie die Scraper API für die konkreten Listings, die Sie verfolgen. Der Datensatz wird nach dem von Ihnen gewählten Plan aktualisiert, und eine Scraper-API-Sammlung liefert jedes Listing zum Zeitpunkt der Ausführung.

Fazit

Das Signierungsschema von AliExpress passt in eine Funktion, aber im Test blockierte das Gateway Aufrufe von einer IP-Adresse innerhalb des ersten Dutzends Anfragen, selbst mit korrekter Signatur. Da eine Blockierung einen Erfolgsstatuscode zurückgeben kann, basieren Sie jede Prüfung auf dem bxpunish-Header und auf einem Feld, das jedes Produkt hat, wie den Preis. Die robots.txt der Website verbietet den öffentlichen /item/-Pfad nicht, das ist also der Pfad, den Sie im großen Maßstab scrapen sollten.

Bright Datas AliExpress Scraper API liefert strukturierte Datensätze für diese Produktseiten, die Browser API erfasst den Preis jeder Variante, und der AliExpress-Datensatz eignet sich für marktweite Fragen. Starten Sie mit der kostenlosen Stufe, die 5.000 Anfragen pro Monat ohne Kreditkarte umfasst. Testen Sie sie mit 40 URLs aus Ihrem Katalog und prüfen Sie die Datensätze anhand der von Ihrer Pipeline benötigten Felder.

FAQ

Hat AliExpress eine API für Produktdaten?

Ja, für Verkäufer, Partner und genehmigte Dropshipper. Auf der AliExpress Open Platform autorisiert ein Verkäufer eine App für seinen eigenen Shop über OAuth 2.0, und die Partner-API deckt den Werbekatalog ab. Keine davon deckt den gesamten Marktplatz ab, sodass marktweite Preisdaten eine E-Commerce-Datenerfassung benötigen.

Wie erhalte ich eine AliExpress-Produkt-URL oder -ID?

Produkt-URLs folgen dem Muster /item/<item_id>.html, und die Entdeckung beginnt bei /w/wholesale-<keyword>.html. IDs hängen vom Host ab. Ein Produkt hat die ID 1005001398867186 auf .com und 3256801212552434 auf .us. Schlüsseln Sie jedes Produkt nach seiner endgültigen URL nach der regionalen Weiterleitung, damit es nicht unter 2 IDs erscheint.

Ist das Scraping von AliExpress-Produktdaten kostenlos?

Ja, im kleinen Maßstab. Bright Datas kostenlose Stufe umfasst 5.000 Anfragen pro Monat ohne Kreditkarte und deckt die Scraper API, Web Unlocker und die Browser API ab, sodass Sie sie zunächst mit Ihren eigenen URLs testen können. Playwright und curl_cffi sind Open Source. Im Produktionsmaßstab zahlen Sie hauptsächlich für IP-Adressen, da 2 Durchläufe mit je 60 signierten API-Aufrufen von einer IP-Adresse 7 bzw. 15 Mal Daten erhielten.

Was kostet eine AliExpress-Scraper-API?

Bright Datas AliExpress Scraper API wird pro geliefertem Datensatz berechnet, und Web Unlocker wird pro erfolgreicher Anfrage berechnet, sodass Sie nur für Ergebnisse zahlen. Die Browser API wird nach Traffic berechnet, sodass das Seitengewicht die Kosten vorhersagt. Eine Produktseite wog im Test etwa 3 MB. Aktuelle Preise finden Sie auf Bright Datas Preisseite.

Warum liefert mein AliExpress-Scraper leere Felder?

Weil das anfängliche HTML keine Preise oder Lagerbestände enthält. window.runParams ist ein leeres Objekt und <title> ist leer, sodass selektorbasierte Extraktoren nichts finden und keinen Fehler auslösen. Das JavaScript der Seite lädt die Felder später von mtop.aliexpress.pdp.pc.query nach. Führen Sie entweder das JavaScript aus oder rufen Sie diese API direkt auf.

Wie vermeide ich Blockierungen beim Scraping von AliExpress?

Senden Sie Anfragen über Bright Datas Scraper API oder Web Unlocker, die eingebaute Proxys und AliExpress-CAPTCHA-Lösung haben. Im Test entfernte weder ein neuer Cookie-Speicher noch eine 60-sekündige Wartezeit eine Blockierung von einer IP-Adresse. Blockierte Anfragen lieferten auch HTTP 200, prüfen Sie also den bxpunish-Header, nicht den Statuscode.

Warum ändern sich AliExpress-Preise?

Weil Aktionen befristet sind und je nach Land variieren. In einem Test über 6 Exit-Länder reichte der Rabatt eines Produkts von 52,5 % bis hinunter zu 4,1 % auf den Listenpreis, und die Länder unterschieden sich darin, ob Preise Steuern enthielten. Legen Sie für jede Preisreihe ein Exit-Land fest und speichern Sie es in der Zeile.

Gibt es einen AliExpress-MCP-Server?

Ja. Bright Datas MCP Server erlaubt es einem KI-Agenten, AliExpress-Produktseiten über dessen Tools scrape_as_markdown und scrape_batch abzurufen, die die Entsperrung übernehmen und Markdown liefern. In einem Testaufruf lieferte scrape_as_markdown Preis, Bewertung, Varianten und Kategoriepfad des Produkts. Die AliExpress-MCP-Seite erklärt die Einrichtung.

Ein dritter Fingerabdruck der erfassten Nutzlast scheint nützlich, kann aber zu Fehlalarmen führen. Das Hashen der Modulmenge scheint dieselbe Idee zu sein, aber die Modulanzahl variierte mit dem Listing und dem Erfassungszeitpunkt, nicht nur mit einer neuen Bereitstellung. Die erfassten Nutzlasten hatten 28, 27 und 28 Module, und die PRICE-Schlüsselmenge unterschied sich zwischen 2 von ihnen.

Die Anzahl änderte sich auch innerhalb eines Produkts. Dieselbe Produkt-ID lieferte 27 Module und dann, Minuten später bei 2 Erfassungen, 26, sodass selbst eine produktbezogene Historie eher einen Schwellenwert als eine Gleichheitsprüfung benötigt. Basieren Sie Ihre Warnungen auf den Hüllen- und Zeilen-Fingerabdrücken, da deren Werte bei jeder Erfassung gleich blieben.

Wann Sie stattdessen den AliExpress-Datensatz kaufen sollten

Alle 3 Methoden starten mit bereits vorhandenen URLs. Wenn Ihre Frage den gesamten Markt betrifft, beginnen Sie mit dem gebrauchsfertigen Datensatz:

Bright-Data-Dataset-Marketplace-Seite für

Das Filterpanel erlaubt es Ihnen, Datensätze auszuwählen, bevor Sie dafür bezahlen.

Der AliExpress-Datensatz reduziert Auswahlaufwand und Sammelzeit. Sie filtern den Datensatz auf die benötigten Einträge, im Marketplace oder über die Filter Dataset API, und zahlen nur für Ihren gefilterten Snapshot. Diese Einträge existieren bereits, es gibt also keinen Sammeldurchlauf, auf den gewartet werden muss. Sie können ihn einmalig oder nach einem von Ihnen gewählten Aktualisierungsplan kaufen, und aktuelle Preise finden Sie auf der Preisseite für Datensätze.

Schätzen Sie die Liefergröße, bevor Sie bestellen. Einträge in der Datensatzprobe sind im Durchschnitt 12,75 KB als gelieferte JSON-Datei groß, planen Sie also mit etwa 1,3 GB pro 100.000 Einträgen. Der Datensatz wird auch im Parquet-Format geliefert, und dieselbe Probe war als Parquet fast 8-mal kleiner. Dieser Größenunterschied kann entscheiden, ob Sie die Datei direkt abfragen oder zuerst zwischenspeichern.

Verwenden Sie den Datensatz für marktweite Sortiments- und Abdeckungsfragen, und verwenden Sie die Scraper API für die konkreten Listings, die Sie verfolgen. Der Datensatz wird nach dem von Ihnen gewählten Plan aktualisiert, und eine Scraper-API-Sammlung liefert jedes Listing zum Zeitpunkt der Ausführung.

Fazit

Das Signierungsschema von AliExpress passt in eine Funktion, aber im Test blockierte das Gateway Aufrufe von einer IP-Adresse innerhalb des ersten Dutzends Anfragen, selbst mit korrekter Signatur. Da eine Blockierung einen Erfolgsstatuscode zurückgeben kann, basieren Sie jede Prüfung auf dem bxpunish-Header und auf einem Feld, das jedes Produkt hat, wie den Preis. Die robots.txt der Website verbietet den öffentlichen /item/-Pfad nicht, das ist also der Pfad, den Sie im großen Maßstab scrapen sollten.

Bright Datas AliExpress Scraper API liefert strukturierte Datensätze für diese Produktseiten, die Browser API erfasst den Preis jeder Variante, und der AliExpress-Datensatz eignet sich für marktweite Fragen. Starten Sie mit der kostenlosen Stufe, die 5.000 Anfragen pro Monat ohne Kreditkarte umfasst. Testen Sie sie mit 40 URLs aus Ihrem Katalog und prüfen Sie die Datensätze anhand der von Ihrer Pipeline benötigten Felder.

FAQ

Hat AliExpress eine API für Produktdaten?

Ja, für Verkäufer, Partner und genehmigte Dropshipper. Auf der AliExpress Open Platform autorisiert ein Verkäufer eine App für seinen eigenen Shop über OAuth 2.0, und die Partner-API deckt den Werbekatalog ab. Keine davon deckt den gesamten Marktplatz ab, sodass marktweite Preisdaten eine E-Commerce-Datenerfassung benötigen.

Wie erhalte ich eine AliExpress-Produkt-URL oder -ID?

Produkt-URLs folgen dem Muster /item/<item_id>.html, und die Entdeckung beginnt bei /w/wholesale-<keyword>.html. IDs hängen vom Host ab. Ein Produkt hat die ID 1005001398867186 auf .com und 3256801212552434 auf .us. Schlüsseln Sie jedes Produkt nach seiner endgültigen URL nach der regionalen Weiterleitung, damit es nicht unter 2 IDs erscheint.

Ist das Scraping von AliExpress-Produktdaten kostenlos?

Ja, im kleinen Maßstab. Bright Datas kostenlose Stufe umfasst 5.000 Anfragen pro Monat ohne Kreditkarte und deckt die Scraper API, Web Unlocker und die Browser API ab, sodass Sie sie zunächst mit Ihren eigenen URLs testen können. Playwright und curl_cffi sind Open Source. Im Produktionsmaßstab zahlen Sie hauptsächlich für IP-Adressen, da 2 Durchläufe mit je 60 signierten API-Aufrufen von einer IP-Adresse 7 bzw. 15 Mal Daten erhielten.

Was kostet eine AliExpress-Scraper-API?

Bright Datas AliExpress Scraper API wird pro geliefertem Datensatz berechnet, und Web Unlocker wird pro erfolgreicher Anfrage berechnet, sodass Sie nur für Ergebnisse zahlen. Die Browser API wird nach Traffic berechnet, sodass das Seitengewicht die Kosten vorhersagt. Eine Produktseite wog im Test etwa 3 MB. Aktuelle Preise finden Sie auf Bright Datas Preisseite.

Warum liefert mein AliExpress-Scraper leere Felder?

Weil das anfängliche HTML keine Preise oder Lagerbestände enthält. window.runParams ist ein leeres Objekt und <title> ist leer, sodass selektorbasierte Extraktoren nichts finden und keinen Fehler auslösen. Das JavaScript der Seite lädt die Felder später von mtop.aliexpress.pdp.pc.query nach. Führen Sie entweder das JavaScript aus oder rufen Sie diese API direkt auf.

Wie vermeide ich Blockierungen beim Scraping von AliExpress?

Senden Sie Anfragen über Bright Datas Scraper API oder Web Unlocker, die eingebaute Proxys und AliExpress-CAPTCHA-Lösung haben. Im Test entfernte weder ein neuer Cookie-Speicher noch eine 60-sekündige Wartezeit eine Blockierung von einer IP-Adresse. Blockierte Anfragen lieferten auch HTTP 200, prüfen Sie also den bxpunish-Header, nicht den Statuscode.

Warum ändern sich AliExpress-Preise?

Weil Aktionen befristet sind und je nach Land variieren. In einem Test über 6 Exit-Länder reichte der Rabatt eines Produkts von 52,5 % bis hinunter zu 4,1 % auf den Listenpreis, und die Länder unterschieden sich darin, ob Preise Steuern enthielten. Legen Sie für jede Preisreihe ein Exit-Land fest und speichern Sie es in der Zeile.

Gibt es einen AliExpress-MCP-Server?

Ja. Bright Datas MCP Server erlaubt es einem KI-Agenten, AliExpress-Produktseiten über dessen Tools scrape_as_markdown und scrape_batch abzurufen, die die Entsperrung übernehmen und Markdown liefern. In einem Testaufruf lieferte scrape_as_markdown Preis, Bewertung, Varianten und Kategoriepfad des Produkts. Die AliExpress-MCP-Seite erklärt die Einrichtung.

Schätzen Sie die Liefergröße, bevor Sie bestellen. Einträge in der Datensatzprobe sind im Durchschnitt 12,75 KB als gelieferte JSON-Datei groß, planen Sie also mit etwa 1,3 GB pro 100.000 Einträgen. Der Datensatz wird auch im Parquet-Format geliefert, und dieselbe Probe war als Parquet fast 8-mal kleiner. Dieser Größenunterschied kann entscheiden, ob Sie die Datei direkt abfragen oder zuerst zwischenspeichern.

Verwenden Sie den Datensatz für marktweite Sortiments- und Abdeckungsfragen, und verwenden Sie die Scraper API für die konkreten Listings, die Sie verfolgen. Der Datensatz wird nach dem von Ihnen gewählten Plan aktualisiert, und eine Scraper-API-Sammlung liefert jedes Listing zum Zeitpunkt der Ausführung.

Fazit

Das Signierungsschema von AliExpress passt in eine Funktion, aber im Test blockierte das Gateway Aufrufe von einer IP-Adresse innerhalb des ersten Dutzends Anfragen, selbst mit korrekter Signatur. Da eine Blockierung einen Erfolgsstatuscode zurückgeben kann, basieren Sie jede Prüfung auf dem bxpunish-Header und auf einem Feld, das jedes Produkt hat, wie den Preis. Die robots.txt der Website verbietet den öffentlichen /item/-Pfad nicht, das ist also der Pfad, den Sie im großen Maßstab scrapen sollten.

Bright Datas AliExpress Scraper API liefert strukturierte Datensätze für diese Produktseiten, die Browser API erfasst den Preis jeder Variante, und der AliExpress-Datensatz eignet sich für marktweite Fragen. Starten Sie mit der kostenlosen Stufe, die 5.000 Anfragen pro Monat ohne Kreditkarte umfasst. Testen Sie sie mit 40 URLs aus Ihrem Katalog und prüfen Sie die Datensätze anhand der von Ihrer Pipeline benötigten Felder.

FAQ

Hat AliExpress eine API für Produktdaten?

Ja, für Verkäufer, Partner und genehmigte Dropshipper. Auf der AliExpress Open Platform autorisiert ein Verkäufer eine App für seinen eigenen Shop über OAuth 2.0, und die Partner-API deckt den Werbekatalog ab. Keine davon deckt den gesamten Marktplatz ab, sodass marktweite Preisdaten eine E-Commerce-Datenerfassung benötigen.

Wie erhalte ich eine AliExpress-Produkt-URL oder -ID?

Produkt-URLs folgen dem Muster /item/<item_id>.html, und die Entdeckung beginnt bei /w/wholesale-<keyword>.html. IDs hängen vom Host ab. Ein Produkt hat die ID 1005001398867186 auf .com und 3256801212552434 auf .us. Schlüsseln Sie jedes Produkt nach seiner endgültigen URL nach der regionalen Weiterleitung, damit es nicht unter 2 IDs erscheint.

Ist das Scraping von AliExpress-Produktdaten kostenlos?

Ja, im kleinen Maßstab. Bright Datas kostenlose Stufe umfasst 5.000 Anfragen pro Monat ohne Kreditkarte und deckt die Scraper API, Web Unlocker und die Browser API ab, sodass Sie sie zunächst mit Ihren eigenen URLs testen können. Playwright und curl_cffi sind Open Source. Im Produktionsmaßstab zahlen Sie hauptsächlich für IP-Adressen, da 2 Durchläufe mit je 60 signierten API-Aufrufen von einer IP-Adresse 7 bzw. 15 Mal Daten erhielten.

Was kostet eine AliExpress-Scraper-API?

Bright Datas AliExpress Scraper API wird pro geliefertem Datensatz berechnet, und Web Unlocker wird pro erfolgreicher Anfrage berechnet, sodass Sie nur für Ergebnisse zahlen. Die Browser API wird nach Traffic berechnet, sodass das Seitengewicht die Kosten vorhersagt. Eine Produktseite wog im Test etwa 3 MB. Aktuelle Preise finden Sie auf Bright Datas Preisseite.

Warum liefert mein AliExpress-Scraper leere Felder?

Weil das anfängliche HTML keine Preise oder Lagerbestände enthält. window.runParams ist ein leeres Objekt und <title> ist leer, sodass selektorbasierte Extraktoren nichts finden und keinen Fehler auslösen. Das JavaScript der Seite lädt die Felder später von mtop.aliexpress.pdp.pc.query nach. Führen Sie entweder das JavaScript aus oder rufen Sie diese API direkt auf.

Wie vermeide ich Blockierungen beim Scraping von AliExpress?

Senden Sie Anfragen über Bright Datas Scraper API oder Web Unlocker, die eingebaute Proxys und AliExpress-CAPTCHA-Lösung haben. Im Test entfernte weder ein neuer Cookie-Speicher noch eine 60-sekündige Wartezeit eine Blockierung von einer IP-Adresse. Blockierte Anfragen lieferten auch HTTP 200, prüfen Sie also den bxpunish-Header, nicht den Statuscode.

Warum ändern sich AliExpress-Preise?

Weil Aktionen befristet sind und je nach Land variieren. In einem Test über 6 Exit-Länder reichte der Rabatt eines Produkts von 52,5 % bis hinunter zu 4,1 % auf den Listenpreis, und die Länder unterschieden sich darin, ob Preise Steuern enthielten. Legen Sie für jede Preisreihe ein Exit-Land fest und speichern Sie es in der Zeile.

Gibt es einen AliExpress-MCP-Server?

Ja. Bright Datas MCP Server erlaubt es einem KI-Agenten, AliExpress-Produktseiten über dessen Tools scrape_as_markdown und scrape_batch abzurufen, die die Entsperrung übernehmen und Markdown liefern. In einem Testaufruf lieferte scrape_as_markdown Preis, Bewertung, Varianten und Kategoriepfad des Produkts. Die AliExpress-MCP-Seite erklärt die Einrichtung.

Der AliExpress-Datensatz reduziert Auswahlaufwand und Sammelzeit. Sie filtern den Datensatz auf die benötigten Einträge, im Marketplace oder über die Filter Dataset API, und zahlen nur für Ihren gefilterten Snapshot. Diese Einträge existieren bereits, es gibt also keinen Sammeldurchlauf, auf den gewartet werden muss. Sie können ihn einmalig oder nach einem von Ihnen gewählten Aktualisierungsplan kaufen, und aktuelle Preise finden Sie auf der Preisseite für Datensätze.

Schätzen Sie die Liefergröße, bevor Sie bestellen. Einträge in der Datensatzprobe sind im Durchschnitt 12,75 KB als gelieferte JSON-Datei groß, planen Sie also mit etwa 1,3 GB pro 100.000 Einträgen. Der Datensatz wird auch im Parquet-Format geliefert, und dieselbe Probe war als Parquet fast 8-mal kleiner. Dieser Größenunterschied kann entscheiden, ob Sie die Datei direkt abfragen oder zuerst zwischenspeichern.

Verwenden Sie den Datensatz für marktweite Sortiments- und Abdeckungsfragen, und verwenden Sie die Scraper API für die konkreten Listings, die Sie verfolgen. Der Datensatz wird nach dem von Ihnen gewählten Plan aktualisiert, und eine Scraper-API-Sammlung liefert jedes Listing zum Zeitpunkt der Ausführung.

Fazit

Das Signierungsschema von AliExpress passt in eine Funktion, aber im Test blockierte das Gateway Aufrufe von einer IP-Adresse innerhalb des ersten Dutzends Anfragen, selbst mit korrekter Signatur. Da eine Blockierung einen Erfolgsstatuscode zurückgeben kann, basieren Sie jede Prüfung auf dem bxpunish-Header und auf einem Feld, das jedes Produkt hat, wie den Preis. Die robots.txt der Website verbietet den öffentlichen /item/-Pfad nicht, das ist also der Pfad, den Sie im großen Maßstab scrapen sollten.

Bright Datas AliExpress Scraper API liefert strukturierte Datensätze für diese Produktseiten, die Browser API erfasst den Preis jeder Variante, und der AliExpress-Datensatz eignet sich für marktweite Fragen. Starten Sie mit der kostenlosen Stufe, die 5.000 Anfragen pro Monat ohne Kreditkarte umfasst. Testen Sie sie mit 40 URLs aus Ihrem Katalog und prüfen Sie die Datensätze anhand der von Ihrer Pipeline benötigten Felder.

FAQ

Hat AliExpress eine API für Produktdaten?

Ja, für Verkäufer, Partner und genehmigte Dropshipper. Auf der AliExpress Open Platform autorisiert ein Verkäufer eine App für seinen eigenen Shop über OAuth 2.0, und die Partner-API deckt den Werbekatalog ab. Keine davon deckt den gesamten Marktplatz ab, sodass marktweite Preisdaten eine E-Commerce-Datenerfassung benötigen.

Wie erhalte ich eine AliExpress-Produkt-URL oder -ID?

Produkt-URLs folgen dem Muster /item/<item_id>.html, und die Entdeckung beginnt bei /w/wholesale-<keyword>.html. IDs hängen vom Host ab. Ein Produkt hat die ID 1005001398867186 auf .com und 3256801212552434 auf .us. Schlüsseln Sie jedes Produkt nach seiner endgültigen URL nach der regionalen Weiterleitung, damit es nicht unter 2 IDs erscheint.

Ist das Scraping von AliExpress-Produktdaten kostenlos?

Ja, im kleinen Maßstab. Bright Datas kostenlose Stufe umfasst 5.000 Anfragen pro Monat ohne Kreditkarte und deckt die Scraper API, Web Unlocker und die Browser API ab, sodass Sie sie zunächst mit Ihren eigenen URLs testen können. Playwright und curl_cffi sind Open Source. Im Produktionsmaßstab zahlen Sie hauptsächlich für IP-Adressen, da 2 Durchläufe mit je 60 signierten API-Aufrufen von einer IP-Adresse 7 bzw. 15 Mal Daten erhielten.

Was kostet eine AliExpress-Scraper-API?

Bright Datas AliExpress Scraper API wird pro geliefertem Datensatz berechnet, und Web Unlocker wird pro erfolgreicher Anfrage berechnet, sodass Sie nur für Ergebnisse zahlen. Die Browser API wird nach Traffic berechnet, sodass das Seitengewicht die Kosten vorhersagt. Eine Produktseite wog im Test etwa 3 MB. Aktuelle Preise finden Sie auf Bright Datas Preisseite.

Warum liefert mein AliExpress-Scraper leere Felder?

Weil das anfängliche HTML keine Preise oder Lagerbestände enthält. window.runParams ist ein leeres Objekt und <title> ist leer, sodass selektorbasierte Extraktoren nichts finden und keinen Fehler auslösen. Das JavaScript der Seite lädt die Felder später von mtop.aliexpress.pdp.pc.query nach. Führen Sie entweder das JavaScript aus oder rufen Sie diese API direkt auf.

Wie vermeide ich Blockierungen beim Scraping von AliExpress?

Senden Sie Anfragen über Bright Datas Scraper API oder Web Unlocker, die eingebaute Proxys und AliExpress-CAPTCHA-Lösung haben. Im Test entfernte weder ein neuer Cookie-Speicher noch eine 60-sekündige Wartezeit eine Blockierung von einer IP-Adresse. Blockierte Anfragen lieferten auch HTTP 200, prüfen Sie also den bxpunish-Header, nicht den Statuscode.

Warum ändern sich AliExpress-Preise?

Weil Aktionen befristet sind und je nach Land variieren. In einem Test über 6 Exit-Länder reichte der Rabatt eines Produkts von 52,5 % bis hinunter zu 4,1 % auf den Listenpreis, und die Länder unterschieden sich darin, ob Preise Steuern enthielten. Legen Sie für jede Preisreihe ein Exit-Land fest und speichern Sie es in der Zeile.

Gibt es einen AliExpress-MCP-Server?

Ja. Bright Datas MCP Server erlaubt es einem KI-Agenten, AliExpress-Produktseiten über dessen Tools scrape_as_markdown und scrape_batch abzurufen, die die Entsperrung übernehmen und Markdown liefern. In einem Testaufruf lieferte scrape_as_markdown Preis, Bewertung, Varianten und Kategoriepfad des Produkts. Die AliExpress-MCP-Seite erklärt die Einrichtung.

Jeder bei diesem Ziel beobachtete Fehler war stillschweigend, überwachen Sie also die Seite selbst. Das Bootstrap-Skript der Seite enthält eine Build-Version, cosmos_prefetch_mtop version 20240605.195626.856, und wenn sich diese Version ändert, kann sich die Prefetch-Konfiguration mit ihr ändern. Ein Fingerabdruck erkennt diese Änderung direkt. Ohne ihn würde Ihr eigener Scraper sie nur als Null-Werte zeigen.

Die 2 untenstehenden Fingerabdrücke prüfen 3 Stufen (die HTML-Hülle, die gerenderte Seite und die gelieferte Zeile), und keiner hängt vom Parsen der Produktfelder ab:

import hashlib, re

def shell_fingerprint(html):
    """Aus einem ungerenderten GET. Erkennt eine Änderung des Bootstraps oder der Prefetch-Konfiguration."""
    view = re.search(r"viewName\s*=\s*'([^']+)'", html)
    api  = re.search(r"api:\s*'(mtop\.[^']+)'", html)
    ver  = re.search(r"cosmos_prefetch_mtop version ([\d.]+)", html)
    return {"viewName": view.group(1) if view else None,
            "prefetch_api": api.group(1) if api else None,
            "gop_version": ver.group(1) if ver else None}

def row_fingerprint(row):
    """Aus einer gelieferten Zeile. Bestätigt den von Ihrer Pipeline erwarteten Feldsatz."""
    keys = sorted(k for k in row if k not in ("input", "timestamp"))
    return {"fields_sha1": hashlib.sha1(",".join(keys).encode()).hexdigest()[:12]}

Bei echten Erfassungen lieferten beide Fingerabdrücke stabile Werte:

shell   unrendered GET : viewName=newDetail  api=mtop.aliexpress.pdp.pc.query  gop=20240605.195626.856
shell   rendered DOM   : viewName=newDetail  api=mtop.aliexpress.pdp.pc.query  gop=20240605.195626.856
row     1005012408061151 : fields_sha1=154f2f84da5f
row     1005001398867186 : fields_sha1=154f2f84da5f
row     1005011666876666 : fields_sha1=154f2f84da5f

Ein dritter Fingerabdruck der erfassten Nutzlast scheint nützlich, kann aber zu Fehlalarmen führen. Das Hashen der Modulmenge scheint dieselbe Idee zu sein, aber die Modulanzahl variierte mit dem Listing und dem Erfassungszeitpunkt, nicht nur mit einer neuen Bereitstellung. Die erfassten Nutzlasten hatten 28, 27 und 28 Module, und die PRICE-Schlüsselmenge unterschied sich zwischen 2 von ihnen.

Die Anzahl änderte sich auch innerhalb eines Produkts. Dieselbe Produkt-ID lieferte 27 Module und dann, Minuten später bei 2 Erfassungen, 26, sodass selbst eine produktbezogene Historie eher einen Schwellenwert als eine Gleichheitsprüfung benötigt. Basieren Sie Ihre Warnungen auf den Hüllen- und Zeilen-Fingerabdrücken, da deren Werte bei jeder Erfassung gleich blieben.

Wann Sie stattdessen den AliExpress-Datensatz kaufen sollten

Alle 3 Methoden starten mit bereits vorhandenen URLs. Wenn Ihre Frage den gesamten Markt betrifft, beginnen Sie mit dem gebrauchsfertigen Datensatz:

Bright-Data-Dataset-Marketplace-Seite für

Das Filterpanel erlaubt es Ihnen, Datensätze auszuwählen, bevor Sie dafür bezahlen.

Der AliExpress-Datensatz reduziert Auswahlaufwand und Sammelzeit. Sie filtern den Datensatz auf die benötigten Einträge, im Marketplace oder über die Filter Dataset API, und zahlen nur für Ihren gefilterten Snapshot. Diese Einträge existieren bereits, es gibt also keinen Sammeldurchlauf, auf den gewartet werden muss. Sie können ihn einmalig oder nach einem von Ihnen gewählten Aktualisierungsplan kaufen, und aktuelle Preise finden Sie auf der Preisseite für Datensätze.

Schätzen Sie die Liefergröße, bevor Sie bestellen. Einträge in der Datensatzprobe sind im Durchschnitt 12,75 KB als gelieferte JSON-Datei groß, planen Sie also mit etwa 1,3 GB pro 100.000 Einträgen. Der Datensatz wird auch im Parquet-Format geliefert, und dieselbe Probe war als Parquet fast 8-mal kleiner. Dieser Größenunterschied kann entscheiden, ob Sie die Datei direkt abfragen oder zuerst zwischenspeichern.

Verwenden Sie den Datensatz für marktweite Sortiments- und Abdeckungsfragen, und verwenden Sie die Scraper API für die konkreten Listings, die Sie verfolgen. Der Datensatz wird nach dem von Ihnen gewählten Plan aktualisiert, und eine Scraper-API-Sammlung liefert jedes Listing zum Zeitpunkt der Ausführung.

Fazit

Das Signierungsschema von AliExpress passt in eine Funktion, aber im Test blockierte das Gateway Aufrufe von einer IP-Adresse innerhalb des ersten Dutzends Anfragen, selbst mit korrekter Signatur. Da eine Blockierung einen Erfolgsstatuscode zurückgeben kann, basieren Sie jede Prüfung auf dem bxpunish-Header und auf einem Feld, das jedes Produkt hat, wie den Preis. Die robots.txt der Website verbietet den öffentlichen /item/-Pfad nicht, das ist also der Pfad, den Sie im großen Maßstab scrapen sollten.

Bright Datas AliExpress Scraper API liefert strukturierte Datensätze für diese Produktseiten, die Browser API erfasst den Preis jeder Variante, und der AliExpress-Datensatz eignet sich für marktweite Fragen. Starten Sie mit der kostenlosen Stufe, die 5.000 Anfragen pro Monat ohne Kreditkarte umfasst. Testen Sie sie mit 40 URLs aus Ihrem Katalog und prüfen Sie die Datensätze anhand der von Ihrer Pipeline benötigten Felder.

FAQ

Hat AliExpress eine API für Produktdaten?

Ja, für Verkäufer, Partner und genehmigte Dropshipper. Auf der AliExpress Open Platform autorisiert ein Verkäufer eine App für seinen eigenen Shop über OAuth 2.0, und die Partner-API deckt den Werbekatalog ab. Keine davon deckt den gesamten Marktplatz ab, sodass marktweite Preisdaten eine E-Commerce-Datenerfassung benötigen.

Wie erhalte ich eine AliExpress-Produkt-URL oder -ID?

Produkt-URLs folgen dem Muster /item/<item_id>.html, und die Entdeckung beginnt bei /w/wholesale-<keyword>.html. IDs hängen vom Host ab. Ein Produkt hat die ID 1005001398867186 auf .com und 3256801212552434 auf .us. Schlüsseln Sie jedes Produkt nach seiner endgültigen URL nach der regionalen Weiterleitung, damit es nicht unter 2 IDs erscheint.

Ist das Scraping von AliExpress-Produktdaten kostenlos?

Ja, im kleinen Maßstab. Bright Datas kostenlose Stufe umfasst 5.000 Anfragen pro Monat ohne Kreditkarte und deckt die Scraper API, Web Unlocker und die Browser API ab, sodass Sie sie zunächst mit Ihren eigenen URLs testen können. Playwright und curl_cffi sind Open Source. Im Produktionsmaßstab zahlen Sie hauptsächlich für IP-Adressen, da 2 Durchläufe mit je 60 signierten API-Aufrufen von einer IP-Adresse 7 bzw. 15 Mal Daten erhielten.

Was kostet eine AliExpress-Scraper-API?

Bright Datas AliExpress Scraper API wird pro geliefertem Datensatz berechnet, und Web Unlocker wird pro erfolgreicher Anfrage berechnet, sodass Sie nur für Ergebnisse zahlen. Die Browser API wird nach Traffic berechnet, sodass das Seitengewicht die Kosten vorhersagt. Eine Produktseite wog im Test etwa 3 MB. Aktuelle Preise finden Sie auf Bright Datas Preisseite.

Warum liefert mein AliExpress-Scraper leere Felder?

Weil das anfängliche HTML keine Preise oder Lagerbestände enthält. window.runParams ist ein leeres Objekt und <title> ist leer, sodass selektorbasierte Extraktoren nichts finden und keinen Fehler auslösen. Das JavaScript der Seite lädt die Felder später von mtop.aliexpress.pdp.pc.query nach. Führen Sie entweder das JavaScript aus oder rufen Sie diese API direkt auf.

Wie vermeide ich Blockierungen beim Scraping von AliExpress?

Senden Sie Anfragen über Bright Datas Scraper API oder Web Unlocker, die eingebaute Proxys und AliExpress-CAPTCHA-Lösung haben. Im Test entfernte weder ein neuer Cookie-Speicher noch eine 60-sekündige Wartezeit eine Blockierung von einer IP-Adresse. Blockierte Anfragen lieferten auch HTTP 200, prüfen Sie also den bxpunish-Header, nicht den Statuscode.

Warum ändern sich AliExpress-Preise?

Weil Aktionen befristet sind und je nach Land variieren. In einem Test über 6 Exit-Länder reichte der Rabatt eines Produkts von 52,5 % bis hinunter zu 4,1 % auf den Listenpreis, und die Länder unterschieden sich darin, ob Preise Steuern enthielten. Legen Sie für jede Preisreihe ein Exit-Land fest und speichern Sie es in der Zeile.

Gibt es einen AliExpress-MCP-Server?

Ja. Bright Datas MCP Server erlaubt es einem KI-Agenten, AliExpress-Produktseiten über dessen Tools scrape_as_markdown und scrape_batch abzurufen, die die Entsperrung übernehmen und Markdown liefern. In einem Testaufruf lieferte scrape_as_markdown Preis, Bewertung, Varianten und Kategoriepfad des Produkts. Die AliExpress-MCP-Seite erklärt die Einrichtung.

Jeder bei diesem Ziel beobachtete Fehler war stillschweigend, überwachen Sie also die Seite selbst. Das Bootstrap-Skript der Seite enthält eine Build-Version, cosmos_prefetch_mtop version 20240605.195626.856, und wenn sich diese Version ändert, kann sich die Prefetch-Konfiguration mit ihr ändern. Ein Fingerabdruck erkennt diese Änderung direkt. Ohne ihn würde Ihr eigener Scraper sie nur als Null-Werte zeigen.

Die 2 untenstehenden Fingerabdrücke prüfen 3 Stufen (die HTML-Hülle, die gerenderte Seite und die gelieferte Zeile), und keiner hängt vom Parsen der Produktfelder ab:

import hashlib, re

def shell_fingerprint(html):
    """Aus einem ungerenderten GET. Erkennt eine Änderung des Bootstraps oder der Prefetch-Konfiguration."""
    view = re.search(r"viewName\s*=\s*'([^']+)'", html)
    api  = re.search(r"api:\s*'(mtop\.[^']+)'", html)
    ver  = re.search(r"cosmos_prefetch_mtop version ([\d.]+)", html)
    return {"viewName": view.group(1) if view else None,
            "prefetch_api": api.group(1) if api else None,
            "gop_version": ver.group(1) if ver else None}

def row_fingerprint(row):
    """Aus einer gelieferten Zeile. Bestätigt den von Ihrer Pipeline erwarteten Feldsatz."""
    keys = sorted(k for k in row if k not in ("input", "timestamp"))
    return {"fields_sha1": hashlib.sha1(",".join(keys).encode()).hexdigest()[:12]}

Bei echten Erfassungen lieferten beide Fingerabdrücke stabile Werte:

shell   unrendered GET : viewName=newDetail  api=mtop.aliexpress.pdp.pc.query  gop=20240605.195626.856
shell   rendered DOM   : viewName=newDetail  api=mtop.aliexpress.pdp.pc.query  gop=20240605.195626.856
row     1005012408061151 : fields_sha1=154f2f84da5f
row     1005001398867186 : fields_sha1=154f2f84da5f
row     1005011666876666 : fields_sha1=154f2f84da5f

Ein dritter Fingerabdruck der erfassten Nutzlast scheint nützlich, kann aber zu Fehlalarmen führen. Das Hashen der Modulmenge scheint dieselbe Idee zu sein, aber die Modulanzahl variierte mit dem Listing und dem Erfassungszeitpunkt, nicht nur mit einer neuen Bereitstellung. Die erfassten Nutzlasten hatten 28, 27 und 28 Module, und die PRICE-Schlüsselmenge unterschied sich zwischen 2 von ihnen.

Die Anzahl änderte sich auch innerhalb eines Produkts. Dieselbe Produkt-ID lieferte 27 Module und dann, Minuten später bei 2 Erfassungen, 26, sodass selbst eine produktbezogene Historie eher einen Schwellenwert als eine Gleichheitsprüfung benötigt. Basieren Sie Ihre Warnungen auf den Hüllen- und Zeilen-Fingerabdrücken, da deren Werte bei jeder Erfassung gleich blieben.

Wann Sie stattdessen den AliExpress-Datensatz kaufen sollten

Alle 3 Methoden starten mit bereits vorhandenen URLs. Wenn Ihre Frage den gesamten Markt betrifft, beginnen Sie mit dem gebrauchsfertigen Datensatz:

Bright-Data-Dataset-Marketplace-Seite für

Das Filterpanel erlaubt es Ihnen, Datensätze auszuwählen, bevor Sie dafür bezahlen.

Der AliExpress-Datensatz reduziert Auswahlaufwand und Sammelzeit. Sie filtern den Datensatz auf die benötigten Einträge, im Marketplace oder über die Filter Dataset API, und zahlen nur für Ihren gefilterten Snapshot. Diese Einträge existieren bereits, es gibt also keinen Sammeldurchlauf, auf den gewartet werden muss. Sie können ihn einmalig oder nach einem von Ihnen gewählten Aktualisierungsplan kaufen, und aktuelle Preise finden Sie auf der Preisseite für Datensätze.

Schätzen Sie die Liefergröße, bevor Sie bestellen. Einträge in der Datensatzprobe sind im Durchschnitt 12,75 KB als gelieferte JSON-Datei groß, planen Sie also mit etwa 1,3 GB pro 100.000 Einträgen. Der Datensatz wird auch im Parquet-Format geliefert, und dieselbe Probe war als Parquet fast 8-mal kleiner. Dieser Größenunterschied kann entscheiden, ob Sie die Datei direkt abfragen oder zuerst zwischenspeichern.

Verwenden Sie den Datensatz für marktweite Sortiments- und Abdeckungsfragen, und verwenden Sie die Scraper API für die konkreten Listings, die Sie verfolgen. Der Datensatz wird nach dem von Ihnen gewählten Plan aktualisiert, und eine Scraper-API-Sammlung liefert jedes Listing zum Zeitpunkt der Ausführung.

Fazit

Das Signierungsschema von AliExpress passt in eine Funktion, aber im Test blockierte das Gateway Aufrufe von einer IP-Adresse innerhalb des ersten Dutzends Anfragen, selbst mit korrekter Signatur. Da eine Blockierung einen Erfolgsstatuscode zurückgeben kann, basieren Sie jede Prüfung auf dem bxpunish-Header und auf einem Feld, das jedes Produkt hat, wie den Preis. Die robots.txt der Website verbietet den öffentlichen /item/-Pfad nicht, das ist also der Pfad, den Sie im großen Maßstab scrapen sollten.

Bright Datas AliExpress Scraper API liefert strukturierte Datensätze für diese Produktseiten, die Browser API erfasst den Preis jeder Variante, und der AliExpress-Datensatz eignet sich für marktweite Fragen. Starten Sie mit der kostenlosen Stufe, die 5.000 Anfragen pro Monat ohne Kreditkarte umfasst. Testen Sie sie mit 40 URLs aus Ihrem Katalog und prüfen Sie die Datensätze anhand der von Ihrer Pipeline benötigten Felder.

FAQ

Hat AliExpress eine API für Produktdaten?

Ja, für Verkäufer, Partner und genehmigte Dropshipper. Auf der AliExpress Open Platform autorisiert ein Verkäufer eine App für seinen eigenen Shop über OAuth 2.0, und die Partner-API deckt den Werbekatalog ab. Keine davon deckt den gesamten Marktplatz ab, sodass marktweite Preisdaten eine E-Commerce-Datenerfassung benötigen.

Wie erhalte ich eine AliExpress-Produkt-URL oder -ID?

Produkt-URLs folgen dem Muster /item/<item_id>.html, und die Entdeckung beginnt bei /w/wholesale-<keyword>.html. IDs hängen vom Host ab. Ein Produkt hat die ID 1005001398867186 auf .com und 3256801212552434 auf .us. Schlüsseln Sie jedes Produkt nach seiner endgültigen URL nach der regionalen Weiterleitung, damit es nicht unter 2 IDs erscheint.

Ist das Scraping von AliExpress-Produktdaten kostenlos?

Ja, im kleinen Maßstab. Bright Datas kostenlose Stufe umfasst 5.000 Anfragen pro Monat ohne Kreditkarte und deckt die Scraper API, Web Unlocker und die Browser API ab, sodass Sie sie zunächst mit Ihren eigenen URLs testen können. Playwright und curl_cffi sind Open Source. Im Produktionsmaßstab zahlen Sie hauptsächlich für IP-Adressen, da 2 Durchläufe mit je 60 signierten API-Aufrufen von einer IP-Adresse 7 bzw. 15 Mal Daten erhielten.

Was kostet eine AliExpress-Scraper-API?

Bright Datas AliExpress Scraper API wird pro geliefertem Datensatz berechnet, und Web Unlocker wird pro erfolgreicher Anfrage berechnet, sodass Sie nur für Ergebnisse zahlen. Die Browser API wird nach Traffic berechnet, sodass das Seitengewicht die Kosten vorhersagt. Eine Produktseite wog im Test etwa 3 MB. Aktuelle Preise finden Sie auf Bright Datas Preisseite.

Warum liefert mein AliExpress-Scraper leere Felder?

Weil das anfängliche HTML keine Preise oder Lagerbestände enthält. window.runParams ist ein leeres Objekt und <title> ist leer, sodass selektorbasierte Extraktoren nichts finden und keinen Fehler auslösen. Das JavaScript der Seite lädt die Felder später von mtop.aliexpress.pdp.pc.query nach. Führen Sie entweder das JavaScript aus oder rufen Sie diese API direkt auf.

Wie vermeide ich Blockierungen beim Scraping von AliExpress?

Senden Sie Anfragen über Bright Datas Scraper API oder Web Unlocker, die eingebaute Proxys und AliExpress-CAPTCHA-Lösung haben. Im Test entfernte weder ein neuer Cookie-Speicher noch eine 60-sekündige Wartezeit eine Blockierung von einer IP-Adresse. Blockierte Anfragen lieferten auch HTTP 200, prüfen Sie also den bxpunish-Header, nicht den Statuscode.

Warum ändern sich AliExpress-Preise?

Weil Aktionen befristet sind und je nach Land variieren. In einem Test über 6 Exit-Länder reichte der Rabatt eines Produkts von 52,5 % bis hinunter zu 4,1 % auf den Listenpreis, und die Länder unterschieden sich darin, ob Preise Steuern enthielten. Legen Sie für jede Preisreihe ein Exit-Land fest und speichern Sie es in der Zeile.

Gibt es einen AliExpress-MCP-Server?

Ja. Bright Datas MCP Server erlaubt es einem KI-Agenten, AliExpress-Produktseiten über dessen Tools scrape_as_markdown und scrape_batch abzurufen, die die Entsperrung übernehmen und Markdown liefern. In einem Testaufruf lieferte scrape_as_markdown Preis, Bewertung, Varianten und Kategoriepfad des Produkts. Die AliExpress-MCP-Seite erklärt die Einrichtung.

Schätzen Sie die Liefergröße, bevor Sie bestellen. Einträge in der Datensatzprobe sind im Durchschnitt 12,75 KB als gelieferte JSON-Datei groß, planen Sie also mit etwa 1,3 GB pro 100.000 Einträgen. Der Datensatz wird auch im Parquet-Format geliefert, und dieselbe Probe war als Parquet fast 8-mal kleiner. Dieser Größenunterschied kann entscheiden, ob Sie die Datei direkt abfragen oder zuerst zwischenspeichern.

Verwenden Sie den Datensatz für marktweite Sortiments- und Abdeckungsfragen, und verwenden Sie die Scraper API für die konkreten Listings, die Sie verfolgen. Der Datensatz wird nach dem von Ihnen gewählten Plan aktualisiert, und eine Scraper-API-Sammlung liefert jedes Listing zum Zeitpunkt der Ausführung.

Fazit

Das Signierungsschema von AliExpress passt in eine Funktion, aber im Test blockierte das Gateway Aufrufe von einer IP-Adresse innerhalb des ersten Dutzends Anfragen, selbst mit korrekter Signatur. Da eine Blockierung einen Erfolgsstatuscode zurückgeben kann, basieren Sie jede Prüfung auf dem bxpunish-Header und auf einem Feld, das jedes Produkt hat, wie den Preis. Die robots.txt der Website verbietet den öffentlichen /item/-Pfad nicht, das ist also der Pfad, den Sie im großen Maßstab scrapen sollten.

Bright Datas AliExpress Scraper API liefert strukturierte Datensätze für diese Produktseiten, die Browser API erfasst den Preis jeder Variante, und der AliExpress-Datensatz eignet sich für marktweite Fragen. Starten Sie mit der kostenlosen Stufe, die 5.000 Anfragen pro Monat ohne Kreditkarte umfasst. Testen Sie sie mit 40 URLs aus Ihrem Katalog und prüfen Sie die Datensätze anhand der von Ihrer Pipeline benötigten Felder.

FAQ

Hat AliExpress eine API für Produktdaten?

Ja, für Verkäufer, Partner und genehmigte Dropshipper. Auf der AliExpress Open Platform autorisiert ein Verkäufer eine App für seinen eigenen Shop über OAuth 2.0, und die Partner-API deckt den Werbekatalog ab. Keine davon deckt den gesamten Marktplatz ab, sodass marktweite Preisdaten eine E-Commerce-Datenerfassung benötigen.

Wie erhalte ich eine AliExpress-Produkt-URL oder -ID?

Produkt-URLs folgen dem Muster /item/<item_id>.html, und die Entdeckung beginnt bei /w/wholesale-<keyword>.html. IDs hängen vom Host ab. Ein Produkt hat die ID 1005001398867186 auf .com und 3256801212552434 auf .us. Schlüsseln Sie jedes Produkt nach seiner endgültigen URL nach der regionalen Weiterleitung, damit es nicht unter 2 IDs erscheint.

Ist das Scraping von AliExpress-Produktdaten kostenlos?

Ja, im kleinen Maßstab. Bright Datas kostenlose Stufe umfasst 5.000 Anfragen pro Monat ohne Kreditkarte und deckt die Scraper API, Web Unlocker und die Browser API ab, sodass Sie sie zunächst mit Ihren eigenen URLs testen können. Playwright und curl_cffi sind Open Source. Im Produktionsmaßstab zahlen Sie hauptsächlich für IP-Adressen, da 2 Durchläufe mit je 60 signierten API-Aufrufen von einer IP-Adresse 7 bzw. 15 Mal Daten erhielten.

Was kostet eine AliExpress-Scraper-API?

Bright Datas AliExpress Scraper API wird pro geliefertem Datensatz berechnet, und Web Unlocker wird pro erfolgreicher Anfrage berechnet, sodass Sie nur für Ergebnisse zahlen. Die Browser API wird nach Traffic berechnet, sodass das Seitengewicht die Kosten vorhersagt. Eine Produktseite wog im Test etwa 3 MB. Aktuelle Preise finden Sie auf Bright Datas Preisseite.

Warum liefert mein AliExpress-Scraper leere Felder?

Weil das anfängliche HTML keine Preise oder Lagerbestände enthält. window.runParams ist ein leeres Objekt und <title> ist leer, sodass selektorbasierte Extraktoren nichts finden und keinen Fehler auslösen. Das JavaScript der Seite lädt die Felder später von mtop.aliexpress.pdp.pc.query nach. Führen Sie entweder das JavaScript aus oder rufen Sie diese API direkt auf.

Wie vermeide ich Blockierungen beim Scraping von AliExpress?

Senden Sie Anfragen über Bright Datas Scraper API oder Web Unlocker, die eingebaute Proxys und AliExpress-CAPTCHA-Lösung haben. Im Test entfernte weder ein neuer Cookie-Speicher noch eine 60-sekündige Wartezeit eine Blockierung von einer IP-Adresse. Blockierte Anfragen lieferten auch HTTP 200, prüfen Sie also den bxpunish-Header, nicht den Statuscode.

Warum ändern sich AliExpress-Preise?

Weil Aktionen befristet sind und je nach Land variieren. In einem Test über 6 Exit-Länder reichte der Rabatt eines Produkts von 52,5 % bis hinunter zu 4,1 % auf den Listenpreis, und die Länder unterschieden sich darin, ob Preise Steuern enthielten. Legen Sie für jede Preisreihe ein Exit-Land fest und speichern Sie es in der Zeile.

Gibt es einen AliExpress-MCP-Server?

Ja. Bright Datas MCP Server erlaubt es einem KI-Agenten, AliExpress-Produktseiten über dessen Tools scrape_as_markdown und scrape_batch abzurufen, die die Entsperrung übernehmen und Markdown liefern. In einem Testaufruf lieferte scrape_as_markdown Preis, Bewertung, Varianten und Kategoriepfad des Produkts. Die AliExpress-MCP-Seite erklärt die Einrichtung.

Der AliExpress-Datensatz reduziert Auswahlaufwand und Sammelzeit. Sie filtern den Datensatz auf die benötigten Einträge, im Marketplace oder über die Filter Dataset API, und zahlen nur für Ihren gefilterten Snapshot. Diese Einträge existieren bereits, es gibt also keinen Sammeldurchlauf, auf den gewartet werden muss. Sie können ihn einmalig oder nach einem von Ihnen gewählten Aktualisierungsplan kaufen, und aktuelle Preise finden Sie auf der Preisseite für Datensätze.

Schätzen Sie die Liefergröße, bevor Sie bestellen. Einträge in der Datensatzprobe sind im Durchschnitt 12,75 KB als gelieferte JSON-Datei groß, planen Sie also mit etwa 1,3 GB pro 100.000 Einträgen. Der Datensatz wird auch im Parquet-Format geliefert, und dieselbe Probe war als Parquet fast 8-mal kleiner. Dieser Größenunterschied kann entscheiden, ob Sie die Datei direkt abfragen oder zuerst zwischenspeichern.

Verwenden Sie den Datensatz für marktweite Sortiments- und Abdeckungsfragen, und verwenden Sie die Scraper API für die konkreten Listings, die Sie verfolgen. Der Datensatz wird nach dem von Ihnen gewählten Plan aktualisiert, und eine Scraper-API-Sammlung liefert jedes Listing zum Zeitpunkt der Ausführung.

Fazit

Das Signierungsschema von AliExpress passt in eine Funktion, aber im Test blockierte das Gateway Aufrufe von einer IP-Adresse innerhalb des ersten Dutzends Anfragen, selbst mit korrekter Signatur. Da eine Blockierung einen Erfolgsstatuscode zurückgeben kann, basieren Sie jede Prüfung auf dem bxpunish-Header und auf einem Feld, das jedes Produkt hat, wie den Preis. Die robots.txt der Website verbietet den öffentlichen /item/-Pfad nicht, das ist also der Pfad, den Sie im großen Maßstab scrapen sollten.

Bright Datas AliExpress Scraper API liefert strukturierte Datensätze für diese Produktseiten, die Browser API erfasst den Preis jeder Variante, und der AliExpress-Datensatz eignet sich für marktweite Fragen. Starten Sie mit der kostenlosen Stufe, die 5.000 Anfragen pro Monat ohne Kreditkarte umfasst. Testen Sie sie mit 40 URLs aus Ihrem Katalog und prüfen Sie die Datensätze anhand der von Ihrer Pipeline benötigten Felder.

FAQ

Hat AliExpress eine API für Produktdaten?

Ja, für Verkäufer, Partner und genehmigte Dropshipper. Auf der AliExpress Open Platform autorisiert ein Verkäufer eine App für seinen eigenen Shop über OAuth 2.0, und die Partner-API deckt den Werbekatalog ab. Keine davon deckt den gesamten Marktplatz ab, sodass marktweite Preisdaten eine E-Commerce-Datenerfassung benötigen.

Wie erhalte ich eine AliExpress-Produkt-URL oder -ID?

Produkt-URLs folgen dem Muster /item/<item_id>.html, und die Entdeckung beginnt bei /w/wholesale-<keyword>.html. IDs hängen vom Host ab. Ein Produkt hat die ID 1005001398867186 auf .com und 3256801212552434 auf .us. Schlüsseln Sie jedes Produkt nach seiner endgültigen URL nach der regionalen Weiterleitung, damit es nicht unter 2 IDs erscheint.

Ist das Scraping von AliExpress-Produktdaten kostenlos?

Ja, im kleinen Maßstab. Bright Datas kostenlose Stufe umfasst 5.000 Anfragen pro Monat ohne Kreditkarte und deckt die Scraper API, Web Unlocker und die Browser API ab, sodass Sie sie zunächst mit Ihren eigenen URLs testen können. Playwright und curl_cffi sind Open Source. Im Produktionsmaßstab zahlen Sie hauptsächlich für IP-Adressen, da 2 Durchläufe mit je 60 signierten API-Aufrufen von einer IP-Adresse 7 bzw. 15 Mal Daten erhielten.

Was kostet eine AliExpress-Scraper-API?

Bright Datas AliExpress Scraper API wird pro geliefertem Datensatz berechnet, und Web Unlocker wird pro erfolgreicher Anfrage berechnet, sodass Sie nur für Ergebnisse zahlen. Die Browser API wird nach Traffic berechnet, sodass das Seitengewicht die Kosten vorhersagt. Eine Produktseite wog im Test etwa 3 MB. Aktuelle Preise finden Sie auf Bright Datas Preisseite.

Warum liefert mein AliExpress-Scraper leere Felder?

Weil das anfängliche HTML keine Preise oder Lagerbestände enthält. window.runParams ist ein leeres Objekt und <title> ist leer, sodass selektorbasierte Extraktoren nichts finden und keinen Fehler auslösen. Das JavaScript der Seite lädt die Felder später von mtop.aliexpress.pdp.pc.query nach. Führen Sie entweder das JavaScript aus oder rufen Sie diese API direkt auf.

Wie vermeide ich Blockierungen beim Scraping von AliExpress?

Senden Sie Anfragen über Bright Datas Scraper API oder Web Unlocker, die eingebaute Proxys und AliExpress-CAPTCHA-Lösung haben. Im Test entfernte weder ein neuer Cookie-Speicher noch eine 60-sekündige Wartezeit eine Blockierung von einer IP-Adresse. Blockierte Anfragen lieferten auch HTTP 200, prüfen Sie also den bxpunish-Header, nicht den Statuscode.

Warum ändern sich AliExpress-Preise?

Weil Aktionen befristet sind und je nach Land variieren. In einem Test über 6 Exit-Länder reichte der Rabatt eines Produkts von 52,5 % bis hinunter zu 4,1 % auf den Listenpreis, und die Länder unterschieden sich darin, ob Preise Steuern enthielten. Legen Sie für jede Preisreihe ein Exit-Land fest und speichern Sie es in der Zeile.

Gibt es einen AliExpress-MCP-Server?

Ja. Bright Datas MCP Server erlaubt es einem KI-Agenten, AliExpress-Produktseiten über dessen Tools scrape_as_markdown und scrape_batch abzurufen, die die Entsperrung übernehmen und Markdown liefern. In einem Testaufruf lieferte scrape_as_markdown Preis, Bewertung, Varianten und Kategoriepfad des Produkts. Die AliExpress-MCP-Seite erklärt die Einrichtung.

Ein dritter Fingerabdruck der erfassten Nutzlast scheint nützlich, kann aber zu Fehlalarmen führen. Das Hashen der Modulmenge scheint dieselbe Idee zu sein, aber die Modulanzahl variierte mit dem Listing und dem Erfassungszeitpunkt, nicht nur mit einer neuen Bereitstellung. Die erfassten Nutzlasten hatten 28, 27 und 28 Module, und die PRICE-Schlüsselmenge unterschied sich zwischen 2 von ihnen.

Die Anzahl änderte sich auch innerhalb eines Produkts. Dieselbe Produkt-ID lieferte 27 Module und dann, Minuten später bei 2 Erfassungen, 26, sodass selbst eine produktbezogene Historie eher einen Schwellenwert als eine Gleichheitsprüfung benötigt. Basieren Sie Ihre Warnungen auf den Hüllen- und Zeilen-Fingerabdrücken, da deren Werte bei jeder Erfassung gleich blieben.

Wann Sie stattdessen den AliExpress-Datensatz kaufen sollten

Alle 3 Methoden starten mit bereits vorhandenen URLs. Wenn Ihre Frage den gesamten Markt betrifft, beginnen Sie mit dem gebrauchsfertigen Datensatz:

Bright-Data-Dataset-Marketplace-Seite für

Das Filterpanel erlaubt es Ihnen, Datensätze auszuwählen, bevor Sie dafür bezahlen.

Der AliExpress-Datensatz reduziert Auswahlaufwand und Sammelzeit. Sie filtern den Datensatz auf die benötigten Einträge, im Marketplace oder über die Filter Dataset API, und zahlen nur für Ihren gefilterten Snapshot. Diese Einträge existieren bereits, es gibt also keinen Sammeldurchlauf, auf den gewartet werden muss. Sie können ihn einmalig oder nach einem von Ihnen gewählten Aktualisierungsplan kaufen, und aktuelle Preise finden Sie auf der Preisseite für Datensätze.

Schätzen Sie die Liefergröße, bevor Sie bestellen. Einträge in der Datensatzprobe sind im Durchschnitt 12,75 KB als gelieferte JSON-Datei groß, planen Sie also mit etwa 1,3 GB pro 100.000 Einträgen. Der Datensatz wird auch im Parquet-Format geliefert, und dieselbe Probe war als Parquet fast 8-mal kleiner. Dieser Größenunterschied kann entscheiden, ob Sie die Datei direkt abfragen oder zuerst zwischenspeichern.

Verwenden Sie den Datensatz für marktweite Sortiments- und Abdeckungsfragen, und verwenden Sie die Scraper API für die konkreten Listings, die Sie verfolgen. Der Datensatz wird nach dem von Ihnen gewählten Plan aktualisiert, und eine Scraper-API-Sammlung liefert jedes Listing zum Zeitpunkt der Ausführung.

Fazit

Das Signierungsschema von AliExpress passt in eine Funktion, aber im Test blockierte das Gateway Aufrufe von einer IP-Adresse innerhalb des ersten Dutzends Anfragen, selbst mit korrekter Signatur. Da eine Blockierung einen Erfolgsstatuscode zurückgeben kann, basieren Sie jede Prüfung auf dem bxpunish-Header und auf einem Feld, das jedes Produkt hat, wie den Preis. Die robots.txt der Website verbietet den öffentlichen /item/-Pfad nicht, das ist also der Pfad, den Sie im großen Maßstab scrapen sollten.

Bright Datas AliExpress Scraper API liefert strukturierte Datensätze für diese Produktseiten, die Browser API erfasst den Preis jeder Variante, und der AliExpress-Datensatz eignet sich für marktweite Fragen. Starten Sie mit der kostenlosen Stufe, die 5.000 Anfragen pro Monat ohne Kreditkarte umfasst. Testen Sie sie mit 40 URLs aus Ihrem Katalog und prüfen Sie die Datensätze anhand der von Ihrer Pipeline benötigten Felder.

FAQ

Hat AliExpress eine API für Produktdaten?

Ja, für Verkäufer, Partner und genehmigte Dropshipper. Auf der AliExpress Open Platform autorisiert ein Verkäufer eine App für seinen eigenen Shop über OAuth 2.0, und die Partner-API deckt den Werbekatalog ab. Keine davon deckt den gesamten Marktplatz ab, sodass marktweite Preisdaten eine E-Commerce-Datenerfassung benötigen.

Wie erhalte ich eine AliExpress-Produkt-URL oder -ID?

Produkt-URLs folgen dem Muster /item/<item_id>.html, und die Entdeckung beginnt bei /w/wholesale-<keyword>.html. IDs hängen vom Host ab. Ein Produkt hat die ID 1005001398867186 auf .com und 3256801212552434 auf .us. Schlüsseln Sie jedes Produkt nach seiner endgültigen URL nach der regionalen Weiterleitung, damit es nicht unter 2 IDs erscheint.

Ist das Scraping von AliExpress-Produktdaten kostenlos?

Ja, im kleinen Maßstab. Bright Datas kostenlose Stufe umfasst 5.000 Anfragen pro Monat ohne Kreditkarte und deckt die Scraper API, Web Unlocker und die Browser API ab, sodass Sie sie zunächst mit Ihren eigenen URLs testen können. Playwright und curl_cffi sind Open Source. Im Produktionsmaßstab zahlen Sie hauptsächlich für IP-Adressen, da 2 Durchläufe mit je 60 signierten API-Aufrufen von einer IP-Adresse 7 bzw. 15 Mal Daten erhielten.

Was kostet eine AliExpress-Scraper-API?

Bright Datas AliExpress Scraper API wird pro geliefertem Datensatz berechnet, und Web Unlocker wird pro erfolgreicher Anfrage berechnet, sodass Sie nur für Ergebnisse zahlen. Die Browser API wird nach Traffic berechnet, sodass das Seitengewicht die Kosten vorhersagt. Eine Produktseite wog im Test etwa 3 MB. Aktuelle Preise finden Sie auf Bright Datas Preisseite.

Warum liefert mein AliExpress-Scraper leere Felder?

Weil das anfängliche HTML keine Preise oder Lagerbestände enthält. window.runParams ist ein leeres Objekt und <title> ist leer, sodass selektorbasierte Extraktoren nichts finden und keinen Fehler auslösen. Das JavaScript der Seite lädt die Felder später von mtop.aliexpress.pdp.pc.query nach. Führen Sie entweder das JavaScript aus oder rufen Sie diese API direkt auf.

Wie vermeide ich Blockierungen beim Scraping von AliExpress?

Senden Sie Anfragen über Bright Datas Scraper API oder Web Unlocker, die eingebaute Proxys und AliExpress-CAPTCHA-Lösung haben. Im Test entfernte weder ein neuer Cookie-Speicher noch eine 60-sekündige Wartezeit eine Blockierung von einer IP-Adresse. Blockierte Anfragen lieferten auch HTTP 200, prüfen Sie also den bxpunish-Header, nicht den Statuscode.

Warum ändern sich AliExpress-Preise?

Weil Aktionen befristet sind und je nach Land variieren. In einem Test über 6 Exit-Länder reichte der Rabatt eines Produkts von 52,5 % bis hinunter zu 4,1 % auf den Listenpreis, und die Länder unterschieden sich darin, ob Preise Steuern enthielten. Legen Sie für jede Preisreihe ein Exit-Land fest und speichern Sie es in der Zeile.

Gibt es einen AliExpress-MCP-Server?

Ja. Bright Datas MCP Server erlaubt es einem KI-Agenten, AliExpress-Produktseiten über dessen Tools scrape_as_markdown und scrape_batch abzurufen, die die Entsperrung übernehmen und Markdown liefern. In einem Testaufruf lieferte scrape_as_markdown Preis, Bewertung, Varianten und Kategoriepfad des Produkts. Die AliExpress-MCP-Seite erklärt die Einrichtung.

Bright Datas Browser API erfasst die SKU-Preiskarte von einer AliExpress-Produktseite, und Web Unlocker liefert den Kategorie-Breadcrumb aus dessen Fußbereich. Rezensionen haben ebenfalls einen eigenen Scraper, den AliExpress Reviews Scraper, dessen Datensätze Produkt-ID und URL enthalten.

Die eigene Antwort der Seite enthält die SKU-Preiskarte. Die mit capture_pdp protokollierten Erfassungen enthielten Preise für 141, 75, 20, 18, 15 und 6 SKUs. Für ein Produkt hatte die Preiskarte 6 unterschiedliche Preise, von 2,56 bis 10,96. Die Karte liegt im Modul PRICE, neben der vorausgewählten SKU und dem Feld region:

Chrome-DevTools-Response-Tab für eine pdp.pc.query-Anfrage, der region US, selectedSkuId 12000059478006652 und eine skuIdStrPriceInfoMap zeigt, deren erste drei Einträge 1er-Packs zu je 7,61 $, 7,58 $ und 7,71 $ mit je 1,09 $ Verkaufspreis sind, gefolgt von einem vierten Eintrag für ein 10er-Pack zu 57,34 $

Diese Erfassung stammt von einem Multipack-Listing. Die Seite wählt ein 1er-Pack zu 1,09 $ vor, und der vierte Eintrag ist ein 10er-Pack zu 57,34 $, sodass die Karte den eigenen Preis jeder Variante enthält.

Um den Preis jeder Variante zu erhalten, führen Sie capture_pdp über die Browser API aus, lesen Sie PRICE.skuIdStrPriceInfoMap und speichern Sie es mit item_id als Schlüssel. Lesen Sie die Karte aus der Region, deren Preise Sie benötigen, da sie auch regional variieren kann. Beim Leistungsschalter aus dem ersten Abschnitt hatte die Karte in einer US-Sitzung unterschiedliche Variantenpreise und in einer anderen Region einen einheitlichen Preis für alle 7 Varianten.

Web-Unlocker-Markdown enthält den Kategoriepfad. Die gerenderte Seite listet die Kategorien des Produkts als Breadcrumb im Fußbereich, und das GLOBAL_DATA.globalData des Gateways hat denselben Pfad in seinem Feld categoryPath, 13/5/141914. Der untenstehende Parser liest die Produktseite als Web-Unlocker-Markdown, das Format, das brightdata scrape standardmäßig liefert:

import re

CRUMB   = re.compile(r"^This product belongs to\s.*$", re.M)
CAT_URL = re.compile(r"/category/(\d+)/([a-z0-9-]+)\.html")

def categories_from_markdown(md):
    """Kategorie-IDs und URLs aus dem Fußbereich der Produktseite."""
    line = CRUMB.search(md)
    if not line:
        return []
    return [{"category_id": cid,
             "url": f"https://www.aliexpress.com/category/{cid}/{slug}.html"}
            for cid, slug in CAT_URL.findall(line.group(0))]

with open("page.md", encoding="utf-8") as fh:    # brightdata scrape  -o page.md
    print(categories_from_markdown(fh.read()))

Das \s am Ende des ersten Musters ist essenziell, da der Fußbereich U+00A0, ein geschütztes Leerzeichen, unmittelbar nach to setzt. Dasselbe Muster mit einem literalen Leerzeichen findet keine Übereinstimmung. Mit \s gibt der Parser den Kategoriepfad zurück:

[{'category_id': '13',     'url': '.../category/13/home-improvement.html'},
 {'category_id': '5',      'url': '.../category/5/electrical-equipments-supplies.html'},
 {'category_id': '141914', 'url': '.../category/141914/circuit-breakers.html'}]

Den Kategoriepfad zu erhalten, benötigt eine Web-Unlocker-Anfrage pro Produkt. Führen Sie den Parser für die Produkte aus, deren Taxonomie Sie benötigen, und speichern Sie das Ergebnis mit item_id als Schlüssel. Der Text des Fußbereichs kann sich ohne Vorankündigung ändern. Prüfen Sie daher zuerst das CRUMB-Muster, falls der Parser eine leere Liste zurückgibt.

Das Scraper Studio übernimmt eine individuelle Feldliste. Wenn Sie die benötigten Daten beschreiben, erstellt dessen KI einen startbereiten Scraper mit eingebauten Proxys und Entsperrung, und Sie können Ausgabefelder später hinzufügen oder ändern. Speziell für die Preisüberwachung sammelt die AliExpress Price Scraper API AliExpress-Preisdaten, damit Sie verfolgen können, wie sich Preise ändern.

Seiten- und Schema-Änderungen erkennen

Jeder bei diesem Ziel beobachtete Fehler war stillschweigend, überwachen Sie also die Seite selbst. Das Bootstrap-Skript der Seite enthält eine Build-Version, cosmos_prefetch_mtop version 20240605.195626.856, und wenn sich diese Version ändert, kann sich die Prefetch-Konfiguration mit ihr ändern. Ein Fingerabdruck erkennt diese Änderung direkt. Ohne ihn würde Ihr eigener Scraper sie nur als Null-Werte zeigen.

Die 2 untenstehenden Fingerabdrücke prüfen 3 Stufen (die HTML-Hülle, die gerenderte Seite und die gelieferte Zeile), und keiner hängt vom Parsen der Produktfelder ab:

import hashlib, re

def shell_fingerprint(html):
    """Aus einem ungerenderten GET. Erkennt eine Änderung des Bootstraps oder der Prefetch-Konfiguration."""
    view = re.search(r"viewName\s*=\s*'([^']+)'", html)
    api  = re.search(r"api:\s*'(mtop\.[^']+)'", html)
    ver  = re.search(r"cosmos_prefetch_mtop version ([\d.]+)", html)
    return {"viewName": view.group(1) if view else None,
            "prefetch_api": api.group(1) if api else None,
            "gop_version": ver.group(1) if ver else None}

def row_fingerprint(row):
    """Aus einer gelieferten Zeile. Bestätigt den von Ihrer Pipeline erwarteten Feldsatz."""
    keys = sorted(k for k in row if k not in ("input", "timestamp"))
    return {"fields_sha1": hashlib.sha1(",".join(keys).encode()).hexdigest()[:12]}

Bei echten Erfassungen lieferten beide Fingerabdrücke stabile Werte:

shell   unrendered GET : viewName=newDetail  api=mtop.aliexpress.pdp.pc.query  gop=20240605.195626.856
shell   rendered DOM   : viewName=newDetail  api=mtop.aliexpress.pdp.pc.query  gop=20240605.195626.856
row     1005012408061151 : fields_sha1=154f2f84da5f
row     1005001398867186 : fields_sha1=154f2f84da5f
row     1005011666876666 : fields_sha1=154f2f84da5f

Ein dritter Fingerabdruck der erfassten Nutzlast scheint nützlich, kann aber zu Fehlalarmen führen. Das Hashen der Modulmenge scheint dieselbe Idee zu sein, aber die Modulanzahl variierte mit dem Listing und dem Erfassungszeitpunkt, nicht nur mit einer neuen Bereitstellung. Die erfassten Nutzlasten hatten 28, 27 und 28 Module, und die PRICE-Schlüsselmenge unterschied sich zwischen 2 von ihnen.

Die Anzahl änderte sich auch innerhalb eines Produkts. Dieselbe Produkt-ID lieferte 27 Module und dann, Minuten später bei 2 Erfassungen, 26, sodass selbst eine produktbezogene Historie eher einen Schwellenwert als eine Gleichheitsprüfung benötigt. Basieren Sie Ihre Warnungen auf den Hüllen- und Zeilen-Fingerabdrücken, da deren Werte bei jeder Erfassung gleich blieben.

Wann Sie stattdessen den AliExpress-Datensatz kaufen sollten

Alle 3 Methoden starten mit bereits vorhandenen URLs. Wenn Ihre Frage den gesamten Markt betrifft, beginnen Sie mit dem gebrauchsfertigen Datensatz:

Bright-Data-Dataset-Marketplace-Seite für

Das Filterpanel erlaubt es Ihnen, Datensätze auszuwählen, bevor Sie dafür bezahlen.

Der AliExpress-Datensatz reduziert Auswahlaufwand und Sammelzeit. Sie filtern den Datensatz auf die benötigten Einträge, im Marketplace oder über die Filter Dataset API, und zahlen nur für Ihren gefilterten Snapshot. Diese Einträge existieren bereits, es gibt also keinen Sammeldurchlauf, auf den gewartet werden muss. Sie können ihn einmalig oder nach einem von Ihnen gewählten Aktualisierungsplan kaufen, und aktuelle Preise finden Sie auf der Preisseite für Datensätze.

Schätzen Sie die Liefergröße, bevor Sie bestellen. Einträge in der Datensatzprobe sind im Durchschnitt 12,75 KB als gelieferte JSON-Datei groß, planen Sie also mit etwa 1,3 GB pro 100.000 Einträgen. Der Datensatz wird auch im Parquet-Format geliefert, und dieselbe Probe war als Parquet fast 8-mal kleiner. Dieser Größenunterschied kann entscheiden, ob Sie die Datei direkt abfragen oder zuerst zwischenspeichern.

Verwenden Sie den Datensatz für marktweite Sortiments- und Abdeckungsfragen, und verwenden Sie die Scraper API für die konkreten Listings, die Sie verfolgen. Der Datensatz wird nach dem von Ihnen gewählten Plan aktualisiert, und eine Scraper-API-Sammlung liefert jedes Listing zum Zeitpunkt der Ausführung.

Fazit

Das Signierungsschema von AliExpress passt in eine Funktion, aber im Test blockierte das Gateway Aufrufe von einer IP-Adresse innerhalb des ersten Dutzends Anfragen, selbst mit korrekter Signatur. Da eine Blockierung einen Erfolgsstatuscode zurückgeben kann, basieren Sie jede Prüfung auf dem bxpunish-Header und auf einem Feld, das jedes Produkt hat, wie den Preis. Die robots.txt der Website verbietet den öffentlichen /item/-Pfad nicht, das ist also der Pfad, den Sie im großen Maßstab scrapen sollten.

Bright Datas AliExpress Scraper API liefert strukturierte Datensätze für diese Produktseiten, die Browser API erfasst den Preis jeder Variante, und der AliExpress-Datensatz eignet sich für marktweite Fragen. Starten Sie mit der kostenlosen Stufe, die 5.000 Anfragen pro Monat ohne Kreditkarte umfasst. Testen Sie sie mit 40 URLs aus Ihrem Katalog und prüfen Sie die Datensätze anhand der von Ihrer Pipeline benötigten Felder.

FAQ

Hat AliExpress eine API für Produktdaten?

Ja, für Verkäufer, Partner und genehmigte Dropshipper. Auf der AliExpress Open Platform autorisiert ein Verkäufer eine App für seinen eigenen Shop über OAuth 2.0, und die Partner-API deckt den Werbekatalog ab. Keine davon deckt den gesamten Marktplatz ab, sodass marktweite Preisdaten eine E-Commerce-Datenerfassung benötigen.

Wie erhalte ich eine AliExpress-Produkt-URL oder -ID?

Produkt-URLs folgen dem Muster /item/<item_id>.html, und die Entdeckung beginnt bei /w/wholesale-<keyword>.html. IDs hängen vom Host ab. Ein Produkt hat die ID 1005001398867186 auf .com und 3256801212552434 auf .us. Schlüsseln Sie jedes Produkt nach seiner endgültigen URL nach der regionalen Weiterleitung, damit es nicht unter 2 IDs erscheint.

Ist das Scraping von AliExpress-Produktdaten kostenlos?

Ja, im kleinen Maßstab. Bright Datas kostenlose Stufe umfasst 5.000 Anfragen pro Monat ohne Kreditkarte und deckt die Scraper API, Web Unlocker und die Browser API ab, sodass Sie sie zunächst mit Ihren eigenen URLs testen können. Playwright und curl_cffi sind Open Source. Im Produktionsmaßstab zahlen Sie hauptsächlich für IP-Adressen, da 2 Durchläufe mit je 60 signierten API-Aufrufen von einer IP-Adresse 7 bzw. 15 Mal Daten erhielten.

Was kostet eine AliExpress-Scraper-API?

Bright Datas AliExpress Scraper API wird pro geliefertem Datensatz berechnet, und Web Unlocker wird pro erfolgreicher Anfrage berechnet, sodass Sie nur für Ergebnisse zahlen. Die Browser API wird nach Traffic berechnet, sodass das Seitengewicht die Kosten vorhersagt. Eine Produktseite wog im Test etwa 3 MB. Aktuelle Preise finden Sie auf Bright Datas Preisseite.

Warum liefert mein AliExpress-Scraper leere Felder?

Weil das anfängliche HTML keine Preise oder Lagerbestände enthält. window.runParams ist ein leeres Objekt und <title> ist leer, sodass selektorbasierte Extraktoren nichts finden und keinen Fehler auslösen. Das JavaScript der Seite lädt die Felder später von mtop.aliexpress.pdp.pc.query nach. Führen Sie entweder das JavaScript aus oder rufen Sie diese API direkt auf.

Wie vermeide ich Blockierungen beim Scraping von AliExpress?

Senden Sie Anfragen über Bright Datas Scraper API oder Web Unlocker, die eingebaute Proxys und AliExpress-CAPTCHA-Lösung haben. Im Test entfernte weder ein neuer Cookie-Speicher noch eine 60-sekündige Wartezeit eine Blockierung von einer IP-Adresse. Blockierte Anfragen lieferten auch HTTP 200, prüfen Sie also den bxpunish-Header, nicht den Statuscode.

Warum ändern sich AliExpress-Preise?

Weil Aktionen befristet sind und je nach Land variieren. In einem Test über 6 Exit-Länder reichte der Rabatt eines Produkts von 52,5 % bis hinunter zu 4,1 % auf den Listenpreis, und die Länder unterschieden sich darin, ob Preise Steuern enthielten. Legen Sie für jede Preisreihe ein Exit-Land fest und speichern Sie es in der Zeile.

Gibt es einen AliExpress-MCP-Server?

Ja. Bright Datas MCP Server erlaubt es einem KI-Agenten, AliExpress-Produktseiten über dessen Tools scrape_as_markdown und scrape_batch abzurufen, die die Entsperrung übernehmen und Markdown liefern. In einem Testaufruf lieferte scrape_as_markdown Preis, Bewertung, Varianten und Kategoriepfad des Produkts. Die AliExpress-MCP-Seite erklärt die Einrichtung.

Bright Datas Browser API erfasst die SKU-Preiskarte von einer AliExpress-Produktseite, und Web Unlocker liefert den Kategorie-Breadcrumb aus dessen Fußbereich. Rezensionen haben ebenfalls einen eigenen Scraper, den AliExpress Reviews Scraper, dessen Datensätze Produkt-ID und URL enthalten.

Die eigene Antwort der Seite enthält die SKU-Preiskarte. Die mit capture_pdp protokollierten Erfassungen enthielten Preise für 141, 75, 20, 18, 15 und 6 SKUs. Für ein Produkt hatte die Preiskarte 6 unterschiedliche Preise, von 2,56 bis 10,96. Die Karte liegt im Modul PRICE, neben der vorausgewählten SKU und dem Feld region:

Chrome-DevTools-Response-Tab für eine pdp.pc.query-Anfrage, der region US, selectedSkuId 12000059478006652 und eine skuIdStrPriceInfoMap zeigt, deren erste drei Einträge 1er-Packs zu je 7,61 $, 7,58 $ und 7,71 $ mit je 1,09 $ Verkaufspreis sind, gefolgt von einem vierten Eintrag für ein 10er-Pack zu 57,34 $

Diese Erfassung stammt von einem Multipack-Listing. Die Seite wählt ein 1er-Pack zu 1,09 $ vor, und der vierte Eintrag ist ein 10er-Pack zu 57,34 $, sodass die Karte den eigenen Preis jeder Variante enthält.

Um den Preis jeder Variante zu erhalten, führen Sie capture_pdp über die Browser API aus, lesen Sie PRICE.skuIdStrPriceInfoMap und speichern Sie es mit item_id als Schlüssel. Lesen Sie die Karte aus der Region, deren Preise Sie benötigen, da sie auch regional variieren kann. Beim Leistungsschalter aus dem ersten Abschnitt hatte die Karte in einer US-Sitzung unterschiedliche Variantenpreise und in einer anderen Region einen einheitlichen Preis für alle 7 Varianten.

Web-Unlocker-Markdown enthält den Kategoriepfad. Die gerenderte Seite listet die Kategorien des Produkts als Breadcrumb im Fußbereich, und das GLOBAL_DATA.globalData des Gateways hat denselben Pfad in seinem Feld categoryPath, 13/5/141914. Der untenstehende Parser liest die Produktseite als Web-Unlocker-Markdown, das Format, das brightdata scrape standardmäßig liefert:

import re

CRUMB   = re.compile(r"^This product belongs to\s.*$", re.M)
CAT_URL = re.compile(r"/category/(\d+)/([a-z0-9-]+)\.html")

def categories_from_markdown(md):
    """Kategorie-IDs und URLs aus dem Fußbereich der Produktseite."""
    line = CRUMB.search(md)
    if not line:
        return []
    return [{"category_id": cid,
             "url": f"https://www.aliexpress.com/category/{cid}/{slug}.html"}
            for cid, slug in CAT_URL.findall(line.group(0))]

with open("page.md", encoding="utf-8") as fh:    # brightdata scrape  -o page.md
    print(categories_from_markdown(fh.read()))

Das \s am Ende des ersten Musters ist essenziell, da der Fußbereich U+00A0, ein geschütztes Leerzeichen, unmittelbar nach to setzt. Dasselbe Muster mit einem literalen Leerzeichen findet keine Übereinstimmung. Mit \s gibt der Parser den Kategoriepfad zurück:

[{'category_id': '13',     'url': '.../category/13/home-improvement.html'},
 {'category_id': '5',      'url': '.../category/5/electrical-equipments-supplies.html'},
 {'category_id': '141914', 'url': '.../category/141914/circuit-breakers.html'}]

Den Kategoriepfad zu erhalten, benötigt eine Web-Unlocker-Anfrage pro Produkt. Führen Sie den Parser für die Produkte aus, deren Taxonomie Sie benötigen, und speichern Sie das Ergebnis mit item_id als Schlüssel. Der Text des Fußbereichs kann sich ohne Vorankündigung ändern. Prüfen Sie daher zuerst das CRUMB-Muster, falls der Parser eine leere Liste zurückgibt.

Das Scraper Studio übernimmt eine individuelle Feldliste. Wenn Sie die benötigten Daten beschreiben, erstellt dessen KI einen startbereiten Scraper mit eingebauten Proxys und Entsperrung, und Sie können Ausgabefelder später hinzufügen oder ändern. Speziell für die Preisüberwachung sammelt die AliExpress Price Scraper API AliExpress-Preisdaten, damit Sie verfolgen können, wie sich Preise ändern.

Seiten- und Schema-Änderungen erkennen

Jeder bei diesem Ziel beobachtete Fehler war stillschweigend, überwachen Sie also die Seite selbst. Das Bootstrap-Skript der Seite enthält eine Build-Version, cosmos_prefetch_mtop version 20240605.195626.856, und wenn sich diese Version ändert, kann sich die Prefetch-Konfiguration mit ihr ändern. Ein Fingerabdruck erkennt diese Änderung direkt. Ohne ihn würde Ihr eigener Scraper sie nur als Null-Werte zeigen.

Die 2 untenstehenden Fingerabdrücke prüfen 3 Stufen (die HTML-Hülle, die gerenderte Seite und die gelieferte Zeile), und keiner hängt vom Parsen der Produktfelder ab:

import hashlib, re

def shell_fingerprint(html):
    """Aus einem ungerenderten GET. Erkennt eine Änderung des Bootstraps oder der Prefetch-Konfiguration."""
    view = re.search(r"viewName\s*=\s*'([^']+)'", html)
    api  = re.search(r"api:\s*'(mtop\.[^']+)'", html)
    ver  = re.search(r"cosmos_prefetch_mtop version ([\d.]+)", html)
    return {"viewName": view.group(1) if view else None,
            "prefetch_api": api.group(1) if api else None,
            "gop_version": ver.group(1) if ver else None}

def row_fingerprint(row):
    """Aus einer gelieferten Zeile. Bestätigt den von Ihrer Pipeline erwarteten Feldsatz."""
    keys = sorted(k for k in row if k not in ("input", "timestamp"))
    return {"fields_sha1": hashlib.sha1(",".join(keys).encode()).hexdigest()[:12]}

Bei echten Erfassungen lieferten beide Fingerabdrücke stabile Werte:

shell   unrendered GET : viewName=newDetail  api=mtop.aliexpress.pdp.pc.query  gop=20240605.195626.856
shell   rendered DOM   : viewName=newDetail  api=mtop.aliexpress.pdp.pc.query  gop=20240605.195626.856
row     1005012408061151 : fields_sha1=154f2f84da5f
row     1005001398867186 : fields_sha1=154f2f84da5f
row     1005011666876666 : fields_sha1=154f2f84da5f

Ein dritter Fingerabdruck der erfassten Nutzlast scheint nützlich, kann aber zu Fehlalarmen führen. Das Hashen der Modulmenge scheint dieselbe Idee zu sein, aber die Modulanzahl variierte mit dem Listing und dem Erfassungszeitpunkt, nicht nur mit einer neuen Bereitstellung. Die erfassten Nutzlasten hatten 28, 27 und 28 Module, und die PRICE-Schlüsselmenge unterschied sich zwischen 2 von ihnen.

Die Anzahl änderte sich auch innerhalb eines Produkts. Dieselbe Produkt-ID lieferte 27 Module und dann, Minuten später bei 2 Erfassungen, 26, sodass selbst eine produktbezogene Historie eher einen Schwellenwert als eine Gleichheitsprüfung benötigt. Basieren Sie Ihre Warnungen auf den Hüllen- und Zeilen-Fingerabdrücken, da deren Werte bei jeder Erfassung gleich blieben.

Wann Sie stattdessen den AliExpress-Datensatz kaufen sollten

Alle 3 Methoden starten mit bereits vorhandenen URLs. Wenn Ihre Frage den gesamten Markt betrifft, beginnen Sie mit dem gebrauchsfertigen Datensatz:

Bright-Data-Dataset-Marketplace-Seite für

Das Filterpanel erlaubt es Ihnen, Datensätze auszuwählen, bevor Sie dafür bezahlen.

Der AliExpress-Datensatz reduziert Auswahlaufwand und Sammelzeit. Sie filtern den Datensatz auf die benötigten Einträge, im Marketplace oder über die Filter Dataset API, und zahlen nur für Ihren gefilterten Snapshot. Diese Einträge existieren bereits, es gibt also keinen Sammeldurchlauf, auf den gewartet werden muss. Sie können ihn einmalig oder nach einem von Ihnen gewählten Aktualisierungsplan kaufen, und aktuelle Preise finden Sie auf der Preisseite für Datensätze.

Schätzen Sie die Liefergröße, bevor Sie bestellen. Einträge in der Datensatzprobe sind im Durchschnitt 12,75 KB als gelieferte JSON-Datei groß, planen Sie also mit etwa 1,3 GB pro 100.000 Einträgen. Der Datensatz wird auch im Parquet-Format geliefert, und dieselbe Probe war als Parquet fast 8-mal kleiner. Dieser Größenunterschied kann entscheiden, ob Sie die Datei direkt abfragen oder zuerst zwischenspeichern.

Verwenden Sie den Datensatz für marktweite Sortiments- und Abdeckungsfragen, und verwenden Sie die Scraper API für die konkreten Listings, die Sie verfolgen. Der Datensatz wird nach dem von Ihnen gewählten Plan aktualisiert, und eine Scraper-API-Sammlung liefert jedes Listing zum Zeitpunkt der Ausführung.

Fazit

Das Signierungsschema von AliExpress passt in eine Funktion, aber im Test blockierte das Gateway Aufrufe von einer IP-Adresse innerhalb des ersten Dutzends Anfragen, selbst mit korrekter Signatur. Da eine Blockierung einen Erfolgsstatuscode zurückgeben kann, basieren Sie jede Prüfung auf dem bxpunish-Header und auf einem Feld, das jedes Produkt hat, wie den Preis. Die robots.txt der Website verbietet den öffentlichen /item/-Pfad nicht, das ist also der Pfad, den Sie im großen Maßstab scrapen sollten.

Bright Datas AliExpress Scraper API liefert strukturierte Datensätze für diese Produktseiten, die Browser API erfasst den Preis jeder Variante, und der AliExpress-Datensatz eignet sich für marktweite Fragen. Starten Sie mit der kostenlosen Stufe, die 5.000 Anfragen pro Monat ohne Kreditkarte umfasst. Testen Sie sie mit 40 URLs aus Ihrem Katalog und prüfen Sie die Datensätze anhand der von Ihrer Pipeline benötigten Felder.

FAQ

Hat AliExpress eine API für Produktdaten?

Ja, für Verkäufer, Partner und genehmigte Dropshipper. Auf der AliExpress Open Platform autorisiert ein Verkäufer eine App für seinen eigenen Shop über OAuth 2.0, und die Partner-API deckt den Werbekatalog ab. Keine davon deckt den gesamten Marktplatz ab, sodass marktweite Preisdaten eine E-Commerce-Datenerfassung benötigen.

Wie erhalte ich eine AliExpress-Produkt-URL oder -ID?

Produkt-URLs folgen dem Muster /item/<item_id>.html, und die Entdeckung beginnt bei /w/wholesale-<keyword>.html. IDs hängen vom Host ab. Ein Produkt hat die ID 1005001398867186 auf .com und 3256801212552434 auf .us. Schlüsseln Sie jedes Produkt nach seiner endgültigen URL nach der regionalen Weiterleitung, damit es nicht unter 2 IDs erscheint.

Ist das Scraping von AliExpress-Produktdaten kostenlos?

Ja, im kleinen Maßstab. Bright Datas kostenlose Stufe umfasst 5.000 Anfragen pro Monat ohne Kreditkarte und deckt die Scraper API, Web Unlocker und die Browser API ab, sodass Sie sie zunächst mit Ihren eigenen URLs testen können. Playwright und curl_cffi sind Open Source. Im Produktionsmaßstab zahlen Sie hauptsächlich für IP-Adressen, da 2 Durchläufe mit je 60 signierten API-Aufrufen von einer IP-Adresse 7 bzw. 15 Mal Daten erhielten.

Was kostet eine AliExpress-Scraper-API?

Bright Datas AliExpress Scraper API wird pro geliefertem Datensatz berechnet, und Web Unlocker wird pro erfolgreicher Anfrage berechnet, sodass Sie nur für Ergebnisse zahlen. Die Browser API wird nach Traffic berechnet, sodass das Seitengewicht die Kosten vorhersagt. Eine Produktseite wog im Test etwa 3 MB. Aktuelle Preise finden Sie auf Bright Datas Preisseite.

Warum liefert mein AliExpress-Scraper leere Felder?

Weil das anfängliche HTML keine Preise oder Lagerbestände enthält. window.runParams ist ein leeres Objekt und <title> ist leer, sodass selektorbasierte Extraktoren nichts finden und keinen Fehler auslösen. Das JavaScript der Seite lädt die Felder später von mtop.aliexpress.pdp.pc.query nach. Führen Sie entweder das JavaScript aus oder rufen Sie diese API direkt auf.

Wie vermeide ich Blockierungen beim Scraping von AliExpress?

Senden Sie Anfragen über Bright Datas Scraper API oder Web Unlocker, die eingebaute Proxys und AliExpress-CAPTCHA-Lösung haben. Im Test entfernte weder ein neuer Cookie-Speicher noch eine 60-sekündige Wartezeit eine Blockierung von einer IP-Adresse. Blockierte Anfragen lieferten auch HTTP 200, prüfen Sie also den bxpunish-Header, nicht den Statuscode.

Warum ändern sich AliExpress-Preise?

Weil Aktionen befristet sind und je nach Land variieren. In einem Test über 6 Exit-Länder reichte der Rabatt eines Produkts von 52,5 % bis hinunter zu 4,1 % auf den Listenpreis, und die Länder unterschieden sich darin, ob Preise Steuern enthielten. Legen Sie für jede Preisreihe ein Exit-Land fest und speichern Sie es in der Zeile.

Gibt es einen AliExpress-MCP-Server?

Ja. Bright Datas MCP Server erlaubt es einem KI-Agenten, AliExpress-Produktseiten über dessen Tools scrape_as_markdown und scrape_batch abzurufen, die die Entsperrung übernehmen und Markdown liefern. In einem Testaufruf lieferte scrape_as_markdown Preis, Bewertung, Varianten und Kategoriepfad des Produkts. Die AliExpress-MCP-Seite erklärt die Einrichtung.

Schätzen Sie die Liefergröße, bevor Sie bestellen. Einträge in der Datensatzprobe sind im Durchschnitt 12,75 KB als gelieferte JSON-Datei groß, planen Sie also mit etwa 1,3 GB pro 100.000 Einträgen. Der Datensatz wird auch im Parquet-Format geliefert, und dieselbe Probe war als Parquet fast 8-mal kleiner. Dieser Größenunterschied kann entscheiden, ob Sie die Datei direkt abfragen oder zuerst zwischenspeichern.

Verwenden Sie den Datensatz für marktweite Sortiments- und Abdeckungsfragen, und verwenden Sie die Scraper API für die konkreten Listings, die Sie verfolgen. Der Datensatz wird nach dem von Ihnen gewählten Plan aktualisiert, und eine Scraper-API-Sammlung liefert jedes Listing zum Zeitpunkt der Ausführung.

Fazit

Das Signierungsschema von AliExpress passt in eine Funktion, aber im Test blockierte das Gateway Aufrufe von einer IP-Adresse innerhalb des ersten Dutzends Anfragen, selbst mit korrekter Signatur. Da eine Blockierung einen Erfolgsstatuscode zurückgeben kann, basieren Sie jede Prüfung auf dem bxpunish-Header und auf einem Feld, das jedes Produkt hat, wie den Preis. Die robots.txt der Website verbietet den öffentlichen /item/-Pfad nicht, das ist also der Pfad, den Sie im großen Maßstab scrapen sollten.

Bright Datas AliExpress Scraper API liefert strukturierte Datensätze für diese Produktseiten, die Browser API erfasst den Preis jeder Variante, und der AliExpress-Datensatz eignet sich für marktweite Fragen. Starten Sie mit der kostenlosen Stufe, die 5.000 Anfragen pro Monat ohne Kreditkarte umfasst. Testen Sie sie mit 40 URLs aus Ihrem Katalog und prüfen Sie die Datensätze anhand der von Ihrer Pipeline benötigten Felder.

FAQ

Hat AliExpress eine API für Produktdaten?

Ja, für Verkäufer, Partner und genehmigte Dropshipper. Auf der AliExpress Open Platform autorisiert ein Verkäufer eine App für seinen eigenen Shop über OAuth 2.0, und die Partner-API deckt den Werbekatalog ab. Keine davon deckt den gesamten Marktplatz ab, sodass marktweite Preisdaten eine E-Commerce-Datenerfassung benötigen.

Wie erhalte ich eine AliExpress-Produkt-URL oder -ID?

Produkt-URLs folgen dem Muster /item/<item_id>.html, und die Entdeckung beginnt bei /w/wholesale-<keyword>.html. IDs hängen vom Host ab. Ein Produkt hat die ID 1005001398867186 auf .com und 3256801212552434 auf .us. Schlüsseln Sie jedes Produkt nach seiner endgültigen URL nach der regionalen Weiterleitung, damit es nicht unter 2 IDs erscheint.

Ist das Scraping von AliExpress-Produktdaten kostenlos?

Ja, im kleinen Maßstab. Bright Datas kostenlose Stufe umfasst 5.000 Anfragen pro Monat ohne Kreditkarte und deckt die Scraper API, Web Unlocker und die Browser API ab, sodass Sie sie zunächst mit Ihren eigenen URLs testen können. Playwright und curl_cffi sind Open Source. Im Produktionsmaßstab zahlen Sie hauptsächlich für IP-Adressen, da 2 Durchläufe mit je 60 signierten API-Aufrufen von einer IP-Adresse 7 bzw. 15 Mal Daten erhielten.

Was kostet eine AliExpress-Scraper-API?

Bright Datas AliExpress Scraper API wird pro geliefertem Datensatz berechnet, und Web Unlocker wird pro erfolgreicher Anfrage berechnet, sodass Sie nur für Ergebnisse zahlen. Die Browser API wird nach Traffic berechnet, sodass das Seitengewicht die Kosten vorhersagt. Eine Produktseite wog im Test etwa 3 MB. Aktuelle Preise finden Sie auf Bright Datas Preisseite.

Warum liefert mein AliExpress-Scraper leere Felder?

Weil das anfängliche HTML keine Preise oder Lagerbestände enthält. window.runParams ist ein leeres Objekt und <title> ist leer, sodass selektorbasierte Extraktoren nichts finden und keinen Fehler auslösen. Das JavaScript der Seite lädt die Felder später von mtop.aliexpress.pdp.pc.query nach. Führen Sie entweder das JavaScript aus oder rufen Sie diese API direkt auf.

Wie vermeide ich Blockierungen beim Scraping von AliExpress?

Senden Sie Anfragen über Bright Datas Scraper API oder Web Unlocker, die eingebaute Proxys und AliExpress-CAPTCHA-Lösung haben. Im Test entfernte weder ein neuer Cookie-Speicher noch eine 60-sekündige Wartezeit eine Blockierung von einer IP-Adresse. Blockierte Anfragen lieferten auch HTTP 200, prüfen Sie also den bxpunish-Header, nicht den Statuscode.

Warum ändern sich AliExpress-Preise?

Weil Aktionen befristet sind und je nach Land variieren. In einem Test über 6 Exit-Länder reichte der Rabatt eines Produkts von 52,5 % bis hinunter zu 4,1 % auf den Listenpreis, und die Länder unterschieden sich darin, ob Preise Steuern enthielten. Legen Sie für jede Preisreihe ein Exit-Land fest und speichern Sie es in der Zeile.

Gibt es einen AliExpress-MCP-Server?

Ja. Bright Datas MCP Server erlaubt es einem KI-Agenten, AliExpress-Produktseiten über dessen Tools scrape_as_markdown und scrape_batch abzurufen, die die Entsperrung übernehmen und Markdown liefern. In einem Testaufruf lieferte scrape_as_markdown Preis, Bewertung, Varianten und Kategoriepfad des Produkts. Die AliExpress-MCP-Seite erklärt die Einrichtung.

Der AliExpress-Datensatz reduziert Auswahlaufwand und Sammelzeit. Sie filtern den Datensatz auf die benötigten Einträge, im Marketplace oder über die Filter Dataset API, und zahlen nur für Ihren gefilterten Snapshot. Diese Einträge existieren bereits, es gibt also keinen Sammeldurchlauf, auf den gewartet werden muss. Sie können ihn einmalig oder nach einem von Ihnen gewählten Aktualisierungsplan kaufen, und aktuelle Preise finden Sie auf der Preisseite für Datensätze.

Schätzen Sie die Liefergröße, bevor Sie bestellen. Einträge in der Datensatzprobe sind im Durchschnitt 12,75 KB als gelieferte JSON-Datei groß, planen Sie also mit etwa 1,3 GB pro 100.000 Einträgen. Der Datensatz wird auch im Parquet-Format geliefert, und dieselbe Probe war als Parquet fast 8-mal kleiner. Dieser Größenunterschied kann entscheiden, ob Sie die Datei direkt abfragen oder zuerst zwischenspeichern.

Verwenden Sie den Datensatz für marktweite Sortiments- und Abdeckungsfragen, und verwenden Sie die Scraper API für die konkreten Listings, die Sie verfolgen. Der Datensatz wird nach dem von Ihnen gewählten Plan aktualisiert, und eine Scraper-API-Sammlung liefert jedes Listing zum Zeitpunkt der Ausführung.

Fazit

Das Signierungsschema von AliExpress passt in eine Funktion, aber im Test blockierte das Gateway Aufrufe von einer IP-Adresse innerhalb des ersten Dutzends Anfragen, selbst mit korrekter Signatur. Da eine Blockierung einen Erfolgsstatuscode zurückgeben kann, basieren Sie jede Prüfung auf dem bxpunish-Header und auf einem Feld, das jedes Produkt hat, wie den Preis. Die robots.txt der Website verbietet den öffentlichen /item/-Pfad nicht, das ist also der Pfad, den Sie im großen Maßstab scrapen sollten.

Bright Datas AliExpress Scraper API liefert strukturierte Datensätze für diese Produktseiten, die Browser API erfasst den Preis jeder Variante, und der AliExpress-Datensatz eignet sich für marktweite Fragen. Starten Sie mit der kostenlosen Stufe, die 5.000 Anfragen pro Monat ohne Kreditkarte umfasst. Testen Sie sie mit 40 URLs aus Ihrem Katalog und prüfen Sie die Datensätze anhand der von Ihrer Pipeline benötigten Felder.

FAQ

Hat AliExpress eine API für Produktdaten?

Ja, für Verkäufer, Partner und genehmigte Dropshipper. Auf der AliExpress Open Platform autorisiert ein Verkäufer eine App für seinen eigenen Shop über OAuth 2.0, und die Partner-API deckt den Werbekatalog ab. Keine davon deckt den gesamten Marktplatz ab, sodass marktweite Preisdaten eine E-Commerce-Datenerfassung benötigen.

Wie erhalte ich eine AliExpress-Produkt-URL oder -ID?

Produkt-URLs folgen dem Muster /item/<item_id>.html, und die Entdeckung beginnt bei /w/wholesale-<keyword>.html. IDs hängen vom Host ab. Ein Produkt hat die ID 1005001398867186 auf .com und 3256801212552434 auf .us. Schlüsseln Sie jedes Produkt nach seiner endgültigen URL nach der regionalen Weiterleitung, damit es nicht unter 2 IDs erscheint.

Ist das Scraping von AliExpress-Produktdaten kostenlos?

Ja, im kleinen Maßstab. Bright Datas kostenlose Stufe umfasst 5.000 Anfragen pro Monat ohne Kreditkarte und deckt die Scraper API, Web Unlocker und die Browser API ab, sodass Sie sie zunächst mit Ihren eigenen URLs testen können. Playwright und curl_cffi sind Open Source. Im Produktionsmaßstab zahlen Sie hauptsächlich für IP-Adressen, da 2 Durchläufe mit je 60 signierten API-Aufrufen von einer IP-Adresse 7 bzw. 15 Mal Daten erhielten.

Was kostet eine AliExpress-Scraper-API?

Bright Datas AliExpress Scraper API wird pro geliefertem Datensatz berechnet, und Web Unlocker wird pro erfolgreicher Anfrage berechnet, sodass Sie nur für Ergebnisse zahlen. Die Browser API wird nach Traffic berechnet, sodass das Seitengewicht die Kosten vorhersagt. Eine Produktseite wog im Test etwa 3 MB. Aktuelle Preise finden Sie auf Bright Datas Preisseite.

Warum liefert mein AliExpress-Scraper leere Felder?

Weil das anfängliche HTML keine Preise oder Lagerbestände enthält. window.runParams ist ein leeres Objekt und <title> ist leer, sodass selektorbasierte Extraktoren nichts finden und keinen Fehler auslösen. Das JavaScript der Seite lädt die Felder später von mtop.aliexpress.pdp.pc.query nach. Führen Sie entweder das JavaScript aus oder rufen Sie diese API direkt auf.

Wie vermeide ich Blockierungen beim Scraping von AliExpress?

Senden Sie Anfragen über Bright Datas Scraper API oder Web Unlocker, die eingebaute Proxys und AliExpress-CAPTCHA-Lösung haben. Im Test entfernte weder ein neuer Cookie-Speicher noch eine 60-sekündige Wartezeit eine Blockierung von einer IP-Adresse. Blockierte Anfragen lieferten auch HTTP 200, prüfen Sie also den bxpunish-Header, nicht den Statuscode.

Warum ändern sich AliExpress-Preise?

Weil Aktionen befristet sind und je nach Land variieren. In einem Test über 6 Exit-Länder reichte der Rabatt eines Produkts von 52,5 % bis hinunter zu 4,1 % auf den Listenpreis, und die Länder unterschieden sich darin, ob Preise Steuern enthielten. Legen Sie für jede Preisreihe ein Exit-Land fest und speichern Sie es in der Zeile.

Gibt es einen AliExpress-MCP-Server?

Ja. Bright Datas MCP Server erlaubt es einem KI-Agenten, AliExpress-Produktseiten über dessen Tools scrape_as_markdown und scrape_batch abzurufen, die die Entsperrung übernehmen und Markdown liefern. In einem Testaufruf lieferte scrape_as_markdown Preis, Bewertung, Varianten und Kategoriepfad des Produkts. Die AliExpress-MCP-Seite erklärt die Einrichtung.

Ein dritter Fingerabdruck der erfassten Nutzlast scheint nützlich, kann aber zu Fehlalarmen führen. Das Hashen der Modulmenge scheint dieselbe Idee zu sein, aber die Modulanzahl variierte mit dem Listing und dem Erfassungszeitpunkt, nicht nur mit einer neuen Bereitstellung. Die erfassten Nutzlasten hatten 28, 27 und 28 Module, und die PRICE-Schlüsselmenge unterschied sich zwischen 2 von ihnen.

Die Anzahl änderte sich auch innerhalb eines Produkts. Dieselbe Produkt-ID lieferte 27 Module und dann, Minuten später bei 2 Erfassungen, 26, sodass selbst eine produktbezogene Historie eher einen Schwellenwert als eine Gleichheitsprüfung benötigt. Basieren Sie Ihre Warnungen auf den Hüllen- und Zeilen-Fingerabdrücken, da deren Werte bei jeder Erfassung gleich blieben.

Wann Sie stattdessen den AliExpress-Datensatz kaufen sollten

Alle 3 Methoden starten mit bereits vorhandenen URLs. Wenn Ihre Frage den gesamten Markt betrifft, beginnen Sie mit dem gebrauchsfertigen Datensatz:

Bright-Data-Dataset-Marketplace-Seite für

Das Filterpanel erlaubt es Ihnen, Datensätze auszuwählen, bevor Sie dafür bezahlen.

Der AliExpress-Datensatz reduziert Auswahlaufwand und Sammelzeit. Sie filtern den Datensatz auf die benötigten Einträge, im Marketplace oder über die Filter Dataset API, und zahlen nur für Ihren gefilterten Snapshot. Diese Einträge existieren bereits, es gibt also keinen Sammeldurchlauf, auf den gewartet werden muss. Sie können ihn einmalig oder nach einem von Ihnen gewählten Aktualisierungsplan kaufen, und aktuelle Preise finden Sie auf der Preisseite für Datensätze.

Schätzen Sie die Liefergröße, bevor Sie bestellen. Einträge in der Datensatzprobe sind im Durchschnitt 12,75 KB als gelieferte JSON-Datei groß, planen Sie also mit etwa 1,3 GB pro 100.000 Einträgen. Der Datensatz wird auch im Parquet-Format geliefert, und dieselbe Probe war als Parquet fast 8-mal kleiner. Dieser Größenunterschied kann entscheiden, ob Sie die Datei direkt abfragen oder zuerst zwischenspeichern.

Verwenden Sie den Datensatz für marktweite Sortiments- und Abdeckungsfragen, und verwenden Sie die Scraper API für die konkreten Listings, die Sie verfolgen. Der Datensatz wird nach dem von Ihnen gewählten Plan aktualisiert, und eine Scraper-API-Sammlung liefert jedes Listing zum Zeitpunkt der Ausführung.

Fazit

Das Signierungsschema von AliExpress passt in eine Funktion, aber im Test blockierte das Gateway Aufrufe von einer IP-Adresse innerhalb des ersten Dutzends Anfragen, selbst mit korrekter Signatur. Da eine Blockierung einen Erfolgsstatuscode zurückgeben kann, basieren Sie jede Prüfung auf dem bxpunish-Header und auf einem Feld, das jedes Produkt hat, wie den Preis. Die robots.txt der Website verbietet den öffentlichen /item/-Pfad nicht, das ist also der Pfad, den Sie im großen Maßstab scrapen sollten.

Bright Datas AliExpress Scraper API liefert strukturierte Datensätze für diese Produktseiten, die Browser API erfasst den Preis jeder Variante, und der AliExpress-Datensatz eignet sich für marktweite Fragen. Starten Sie mit der kostenlosen Stufe, die 5.000 Anfragen pro Monat ohne Kreditkarte umfasst. Testen Sie sie mit 40 URLs aus Ihrem Katalog und prüfen Sie die Datensätze anhand der von Ihrer Pipeline benötigten Felder.

FAQ

Hat AliExpress eine API für Produktdaten?

Ja, für Verkäufer, Partner und genehmigte Dropshipper. Auf der AliExpress Open Platform autorisiert ein Verkäufer eine App für seinen eigenen Shop über OAuth 2.0, und die Partner-API deckt den Werbekatalog ab. Keine davon deckt den gesamten Marktplatz ab, sodass marktweite Preisdaten eine E-Commerce-Datenerfassung benötigen.

Wie erhalte ich eine AliExpress-Produkt-URL oder -ID?

Produkt-URLs folgen dem Muster /item/<item_id>.html, und die Entdeckung beginnt bei /w/wholesale-<keyword>.html. IDs hängen vom Host ab. Ein Produkt hat die ID 1005001398867186 auf .com und 3256801212552434 auf .us. Schlüsseln Sie jedes Produkt nach seiner endgültigen URL nach der regionalen Weiterleitung, damit es nicht unter 2 IDs erscheint.

Ist das Scraping von AliExpress-Produktdaten kostenlos?

Ja, im kleinen Maßstab. Bright Datas kostenlose Stufe umfasst 5.000 Anfragen pro Monat ohne Kreditkarte und deckt die Scraper API, Web Unlocker und die Browser API ab, sodass Sie sie zunächst mit Ihren eigenen URLs testen können. Playwright und curl_cffi sind Open Source. Im Produktionsmaßstab zahlen Sie hauptsächlich für IP-Adressen, da 2 Durchläufe mit je 60 signierten API-Aufrufen von einer IP-Adresse 7 bzw. 15 Mal Daten erhielten.

Was kostet eine AliExpress-Scraper-API?

Bright Datas AliExpress Scraper API wird pro geliefertem Datensatz berechnet, und Web Unlocker wird pro erfolgreicher Anfrage berechnet, sodass Sie nur für Ergebnisse zahlen. Die Browser API wird nach Traffic berechnet, sodass das Seitengewicht die Kosten vorhersagt. Eine Produktseite wog im Test etwa 3 MB. Aktuelle Preise finden Sie auf Bright Datas Preisseite.

Warum liefert mein AliExpress-Scraper leere Felder?

Weil das anfängliche HTML keine Preise oder Lagerbestände enthält. window.runParams ist ein leeres Objekt und <title> ist leer, sodass selektorbasierte Extraktoren nichts finden und keinen Fehler auslösen. Das JavaScript der Seite lädt die Felder später von mtop.aliexpress.pdp.pc.query nach. Führen Sie entweder das JavaScript aus oder rufen Sie diese API direkt auf.

Wie vermeide ich Blockierungen beim Scraping von AliExpress?

Senden Sie Anfragen über Bright Datas Scraper API oder Web Unlocker, die eingebaute Proxys und AliExpress-CAPTCHA-Lösung haben. Im Test entfernte weder ein neuer Cookie-Speicher noch eine 60-sekündige Wartezeit eine Blockierung von einer IP-Adresse. Blockierte Anfragen lieferten auch HTTP 200, prüfen Sie also den bxpunish-Header, nicht den Statuscode.

Warum ändern sich AliExpress-Preise?

Weil Aktionen befristet sind und je nach Land variieren. In einem Test über 6 Exit-Länder reichte der Rabatt eines Produkts von 52,5 % bis hinunter zu 4,1 % auf den Listenpreis, und die Länder unterschieden sich darin, ob Preise Steuern enthielten. Legen Sie für jede Preisreihe ein Exit-Land fest und speichern Sie es in der Zeile.

Gibt es einen AliExpress-MCP-Server?

Ja. Bright Datas MCP Server erlaubt es einem KI-Agenten, AliExpress-Produktseiten über dessen Tools scrape_as_markdown und scrape_batch abzurufen, die die Entsperrung übernehmen und Markdown liefern. In einem Testaufruf lieferte scrape_as_markdown Preis, Bewertung, Varianten und Kategoriepfad des Produkts. Die AliExpress-MCP-Seite erklärt die Einrichtung.

Jeder bei diesem Ziel beobachtete Fehler war stillschweigend, überwachen Sie also die Seite selbst. Das Bootstrap-Skript der Seite enthält eine Build-Version, cosmos_prefetch_mtop version 20240605.195626.856, und wenn sich diese Version ändert, kann sich die Prefetch-Konfiguration mit ihr ändern. Ein Fingerabdruck erkennt diese Änderung direkt. Ohne ihn würde Ihr eigener Scraper sie nur als Null-Werte zeigen.

Die 2 untenstehenden Fingerabdrücke prüfen 3 Stufen (die HTML-Hülle, die gerenderte Seite und die gelieferte Zeile), und keiner hängt vom Parsen der Produktfelder ab:

import hashlib, re

def shell_fingerprint(html):
    """Aus einem ungerenderten GET. Erkennt eine Änderung des Bootstraps oder der Prefetch-Konfiguration."""
    view = re.search(r"viewName\s*=\s*'([^']+)'", html)
    api  = re.search(r"api:\s*'(mtop\.[^']+)'", html)
    ver  = re.search(r"cosmos_prefetch_mtop version ([\d.]+)", html)
    return {"viewName": view.group(1) if view else None,
            "prefetch_api": api.group(1) if api else None,
            "gop_version": ver.group(1) if ver else None}

def row_fingerprint(row):
    """Aus einer gelieferten Zeile. Bestätigt den von Ihrer Pipeline erwarteten Feldsatz."""
    keys = sorted(k for k in row if k not in ("input", "timestamp"))
    return {"fields_sha1": hashlib.sha1(",".join(keys).encode()).hexdigest()[:12]}

Bei echten Erfassungen lieferten beide Fingerabdrücke stabile Werte:

shell   unrendered GET : viewName=newDetail  api=mtop.aliexpress.pdp.pc.query  gop=20240605.195626.856
shell   rendered DOM   : viewName=newDetail  api=mtop.aliexpress.pdp.pc.query  gop=20240605.195626.856
row     1005012408061151 : fields_sha1=154f2f84da5f
row     1005001398867186 : fields_sha1=154f2f84da5f
row     1005011666876666 : fields_sha1=154f2f84da5f

Ein dritter Fingerabdruck der erfassten Nutzlast scheint nützlich, kann aber zu Fehlalarmen führen. Das Hashen der Modulmenge scheint dieselbe Idee zu sein, aber die Modulanzahl variierte mit dem Listing und dem Erfassungszeitpunkt, nicht nur mit einer neuen Bereitstellung. Die erfassten Nutzlasten hatten 28, 27 und 28 Module, und die PRICE-Schlüsselmenge unterschied sich zwischen 2 von ihnen.

Die Anzahl änderte sich auch innerhalb eines Produkts. Dieselbe Produkt-ID lieferte 27 Module und dann, Minuten später bei 2 Erfassungen, 26, sodass selbst eine produktbezogene Historie eher einen Schwellenwert als eine Gleichheitsprüfung benötigt. Basieren Sie Ihre Warnungen auf den Hüllen- und Zeilen-Fingerabdrücken, da deren Werte bei jeder Erfassung gleich blieben.

Wann Sie stattdessen den AliExpress-Datensatz kaufen sollten

Alle 3 Methoden starten mit bereits vorhandenen URLs. Wenn Ihre Frage den gesamten Markt betrifft, beginnen Sie mit dem gebrauchsfertigen Datensatz:

Bright-Data-Dataset-Marketplace-Seite für

Das Filterpanel erlaubt es Ihnen, Datensätze auszuwählen, bevor Sie dafür bezahlen.

Der AliExpress-Datensatz reduziert Auswahlaufwand und Sammelzeit. Sie filtern den Datensatz auf die benötigten Einträge, im Marketplace oder über die Filter Dataset API, und zahlen nur für Ihren gefilterten Snapshot. Diese Einträge existieren bereits, es gibt also keinen Sammeldurchlauf, auf den gewartet werden muss. Sie können ihn einmalig oder nach einem von Ihnen gewählten Aktualisierungsplan kaufen, und aktuelle Preise finden Sie auf der Preisseite für Datensätze.

Schätzen Sie die Liefergröße, bevor Sie bestellen. Einträge in der Datensatzprobe sind im Durchschnitt 12,75 KB als gelieferte JSON-Datei groß, planen Sie also mit etwa 1,3 GB pro 100.000 Einträgen. Der Datensatz wird auch im Parquet-Format geliefert, und dieselbe Probe war als Parquet fast 8-mal kleiner. Dieser Größenunterschied kann entscheiden, ob Sie die Datei direkt abfragen oder zuerst zwischenspeichern.

Verwenden Sie den Datensatz für marktweite Sortiments- und Abdeckungsfragen, und verwenden Sie die Scraper API für die konkreten Listings, die Sie verfolgen. Der Datensatz wird nach dem von Ihnen gewählten Plan aktualisiert, und eine Scraper-API-Sammlung liefert jedes Listing zum Zeitpunkt der Ausführung.

Fazit

Das Signierungsschema von AliExpress passt in eine Funktion, aber im Test blockierte das Gateway Aufrufe von einer IP-Adresse innerhalb des ersten Dutzends Anfragen, selbst mit korrekter Signatur. Da eine Blockierung einen Erfolgsstatuscode zurückgeben kann, basieren Sie jede Prüfung auf dem bxpunish-Header und auf einem Feld, das jedes Produkt hat, wie den Preis. Die robots.txt der Website verbietet den öffentlichen /item/-Pfad nicht, das ist also der Pfad, den Sie im großen Maßstab scrapen sollten.

Bright Datas AliExpress Scraper API liefert strukturierte Datensätze für diese Produktseiten, die Browser API erfasst den Preis jeder Variante, und der AliExpress-Datensatz eignet sich für marktweite Fragen. Starten Sie mit der kostenlosen Stufe, die 5.000 Anfragen pro Monat ohne Kreditkarte umfasst. Testen Sie sie mit 40 URLs aus Ihrem Katalog und prüfen Sie die Datensätze anhand der von Ihrer Pipeline benötigten Felder.

FAQ

Hat AliExpress eine API für Produktdaten?

Ja, für Verkäufer, Partner und genehmigte Dropshipper. Auf der AliExpress Open Platform autorisiert ein Verkäufer eine App für seinen eigenen Shop über OAuth 2.0, und die Partner-API deckt den Werbekatalog ab. Keine davon deckt den gesamten Marktplatz ab, sodass marktweite Preisdaten eine E-Commerce-Datenerfassung benötigen.

Wie erhalte ich eine AliExpress-Produkt-URL oder -ID?

Produkt-URLs folgen dem Muster /item/<item_id>.html, und die Entdeckung beginnt bei /w/wholesale-<keyword>.html. IDs hängen vom Host ab. Ein Produkt hat die ID 1005001398867186 auf .com und 3256801212552434 auf .us. Schlüsseln Sie jedes Produkt nach seiner endgültigen URL nach der regionalen Weiterleitung, damit es nicht unter 2 IDs erscheint.

Ist das Scraping von AliExpress-Produktdaten kostenlos?

Ja, im kleinen Maßstab. Bright Datas kostenlose Stufe umfasst 5.000 Anfragen pro Monat ohne Kreditkarte und deckt die Scraper API, Web Unlocker und die Browser API ab, sodass Sie sie zunächst mit Ihren eigenen URLs testen können. Playwright und curl_cffi sind Open Source. Im Produktionsmaßstab zahlen Sie hauptsächlich für IP-Adressen, da 2 Durchläufe mit je 60 signierten API-Aufrufen von einer IP-Adresse 7 bzw. 15 Mal Daten erhielten.

Was kostet eine AliExpress-Scraper-API?

Bright Datas AliExpress Scraper API wird pro geliefertem Datensatz berechnet, und Web Unlocker wird pro erfolgreicher Anfrage berechnet, sodass Sie nur für Ergebnisse zahlen. Die Browser API wird nach Traffic berechnet, sodass das Seitengewicht die Kosten vorhersagt. Eine Produktseite wog im Test etwa 3 MB. Aktuelle Preise finden Sie auf Bright Datas Preisseite.

Warum liefert mein AliExpress-Scraper leere Felder?

Weil das anfängliche HTML keine Preise oder Lagerbestände enthält. window.runParams ist ein leeres Objekt und <title> ist leer, sodass selektorbasierte Extraktoren nichts finden und keinen Fehler auslösen. Das JavaScript der Seite lädt die Felder später von mtop.aliexpress.pdp.pc.query nach. Führen Sie entweder das JavaScript aus oder rufen Sie diese API direkt auf.

Wie vermeide ich Blockierungen beim Scraping von AliExpress?

Senden Sie Anfragen über Bright Datas Scraper API oder Web Unlocker, die eingebaute Proxys und AliExpress-CAPTCHA-Lösung haben. Im Test entfernte weder ein neuer Cookie-Speicher noch eine 60-sekündige Wartezeit eine Blockierung von einer IP-Adresse. Blockierte Anfragen lieferten auch HTTP 200, prüfen Sie also den bxpunish-Header, nicht den Statuscode.

Warum ändern sich AliExpress-Preise?

Weil Aktionen befristet sind und je nach Land variieren. In einem Test über 6 Exit-Länder reichte der Rabatt eines Produkts von 52,5 % bis hinunter zu 4,1 % auf den Listenpreis, und die Länder unterschieden sich darin, ob Preise Steuern enthielten. Legen Sie für jede Preisreihe ein Exit-Land fest und speichern Sie es in der Zeile.

Gibt es einen AliExpress-MCP-Server?

Ja. Bright Datas MCP Server erlaubt es einem KI-Agenten, AliExpress-Produktseiten über dessen Tools scrape_as_markdown und scrape_batch abzurufen, die die Entsperrung übernehmen und Markdown liefern. In einem Testaufruf lieferte scrape_as_markdown Preis, Bewertung, Varianten und Kategoriepfad des Produkts. Die AliExpress-MCP-Seite erklärt die Einrichtung.

Die Daten benötigen dieselbe Validierung wie die HTTP-Antworten. Jede dieser 2 Prüfungen ist günstig hinzuzufügen und hilft Ihnen, nicht vergleichbare Preise zu erkennen, bevor sie ein Dashboard erreichen.

Der Rabatt variierte mit dem Exit-Land, nicht nur mit der Währung. Ich rief eine Produkt-ID über Web Unlocker im Markdown-Format aus 6 Exit-Ländern ab, und jedes Land lieferte eine andere Aktion:

Exit-LandWährungVerkaufspreisListenpreisRabatt
USAUSD$6,84$14,4052,5 %
Vereinigtes KönigreichGBP£9,83£11,1611,9 %
DeutschlandEUR11,69€13,29€12,0 %
BrasilienBRLR$62,25R$68,308,9 %
AustralienAUDAU$18,59AU$19,424,3 %
KanadaCADC$19,86C$20,704,1 %

Selbst die Prozentwerte sind nicht direkt vergleichbar, und jede Seite zeigt warum. Die US-Kaufbox beschriftet ihren Preis mit Ends :, sodass die US-Zeile ein zeitlich begrenztes Angebot ist, das zu einem Zeitpunkt erfasst wurde. Die UK-Seite sagt Price includes VAT, während die US-Seite Tax excluded sagt. Die deutsche Seite nennt den niedrigsten 30-Tage-Preis vor dem Rabatt, die EU-Referenzpreisregel, die dazu neigt, deutsche Rabatte kleiner erscheinen zu lassen.

Wegen dieser 3 Unterschiede legen Sie für jede Preisreihe ein Exit-Land fest, speichern es in der Zeile und vergleichen eine Reihe nur mit sich selbst. Web Unlocker legt es mit dem Parameter country fest, und die Browser API legt es mit einem -country-<code>-Suffix am Zonen-Benutzernamen fest. Wenn Sie die Aktionen selbst statt einer Preis-Pipeline benötigen, überwacht der AliExpress Promotions Tracker Konkurrenzaktionen für Sie.

Das britische Pfund-Zeichen ist das in voller Breite. Der UK-Shop verwendet £, U+FFE1 FULLWIDTH POUND SIGN, sodass ein mit £ (U+00A3) geschriebener Währungs-Regex nichts findet. Die deutschen und brasilianischen Shops verwenden im Preisfeld ein Komma als Dezimaltrennzeichen. Parsen Sie die Währung aus der angeforderten Shop-Einstellung und halten Sie das Zahlenparsing vom Symbol getrennt.

Der Preis jeder Variante und der vollständige Kategoriepfad

Bright Datas Browser API erfasst die SKU-Preiskarte von einer AliExpress-Produktseite, und Web Unlocker liefert den Kategorie-Breadcrumb aus dessen Fußbereich. Rezensionen haben ebenfalls einen eigenen Scraper, den AliExpress Reviews Scraper, dessen Datensätze Produkt-ID und URL enthalten.

Die eigene Antwort der Seite enthält die SKU-Preiskarte. Die mit capture_pdp protokollierten Erfassungen enthielten Preise für 141, 75, 20, 18, 15 und 6 SKUs. Für ein Produkt hatte die Preiskarte 6 unterschiedliche Preise, von 2,56 bis 10,96. Die Karte liegt im Modul PRICE, neben der vorausgewählten SKU und dem Feld region:

Chrome-DevTools-Response-Tab für eine pdp.pc.query-Anfrage, der region US, selectedSkuId 12000059478006652 und eine skuIdStrPriceInfoMap zeigt, deren erste drei Einträge 1er-Packs zu je 7,61 $, 7,58 $ und 7,71 $ mit je 1,09 $ Verkaufspreis sind, gefolgt von einem vierten Eintrag für ein 10er-Pack zu 57,34 $

Diese Erfassung stammt von einem Multipack-Listing. Die Seite wählt ein 1er-Pack zu 1,09 $ vor, und der vierte Eintrag ist ein 10er-Pack zu 57,34 $, sodass die Karte den eigenen Preis jeder Variante enthält.

Um den Preis jeder Variante zu erhalten, führen Sie capture_pdp über die Browser API aus, lesen Sie PRICE.skuIdStrPriceInfoMap und speichern Sie es mit item_id als Schlüssel. Lesen Sie die Karte aus der Region, deren Preise Sie benötigen, da sie auch regional variieren kann. Beim Leistungsschalter aus dem ersten Abschnitt hatte die Karte in einer US-Sitzung unterschiedliche Variantenpreise und in einer anderen Region einen einheitlichen Preis für alle 7 Varianten.

Web-Unlocker-Markdown enthält den Kategoriepfad. Die gerenderte Seite listet die Kategorien des Produkts als Breadcrumb im Fußbereich, und das GLOBAL_DATA.globalData des Gateways hat denselben Pfad in seinem Feld categoryPath, 13/5/141914. Der untenstehende Parser liest die Produktseite als Web-Unlocker-Markdown, das Format, das brightdata scrape standardmäßig liefert:

import re

CRUMB   = re.compile(r"^This product belongs to\s.*$", re.M)
CAT_URL = re.compile(r"/category/(\d+)/([a-z0-9-]+)\.html")

def categories_from_markdown(md):
    """Kategorie-IDs und URLs aus dem Fußbereich der Produktseite."""
    line = CRUMB.search(md)
    if not line:
        return []
    return [{"category_id": cid,
             "url": f"https://www.aliexpress.com/category/{cid}/{slug}.html"}
            for cid, slug in CAT_URL.findall(line.group(0))]

with open("page.md", encoding="utf-8") as fh:    # brightdata scrape  -o page.md
    print(categories_from_markdown(fh.read()))

Das \s am Ende des ersten Musters ist essenziell, da der Fußbereich U+00A0, ein geschütztes Leerzeichen, unmittelbar nach to setzt. Dasselbe Muster mit einem literalen Leerzeichen findet keine Übereinstimmung. Mit \s gibt der Parser den Kategoriepfad zurück:

[{'category_id': '13',     'url': '.../category/13/home-improvement.html'},
 {'category_id': '5',      'url': '.../category/5/electrical-equipments-supplies.html'},
 {'category_id': '141914', 'url': '.../category/141914/circuit-breakers.html'}]

Den Kategoriepfad zu erhalten, benötigt eine Web-Unlocker-Anfrage pro Produkt. Führen Sie den Parser für die Produkte aus, deren Taxonomie Sie benötigen, und speichern Sie das Ergebnis mit item_id als Schlüssel. Der Text des Fußbereichs kann sich ohne Vorankündigung ändern. Prüfen Sie daher zuerst das CRUMB-Muster, falls der Parser eine leere Liste zurückgibt.

Das Scraper Studio übernimmt eine individuelle Feldliste. Wenn Sie die benötigten Daten beschreiben, erstellt dessen KI einen startbereiten Scraper mit eingebauten Proxys und Entsperrung, und Sie können Ausgabefelder später hinzufügen oder ändern. Speziell für die Preisüberwachung sammelt die AliExpress Price Scraper API AliExpress-Preisdaten, damit Sie verfolgen können, wie sich Preise ändern.

Seiten- und Schema-Änderungen erkennen

Jeder bei diesem Ziel beobachtete Fehler war stillschweigend, überwachen Sie also die Seite selbst. Das Bootstrap-Skript der Seite enthält eine Build-Version, cosmos_prefetch_mtop version 20240605.195626.856, und wenn sich diese Version ändert, kann sich die Prefetch-Konfiguration mit ihr ändern. Ein Fingerabdruck erkennt diese Änderung direkt. Ohne ihn würde Ihr eigener Scraper sie nur als Null-Werte zeigen.

Die 2 untenstehenden Fingerabdrücke prüfen 3 Stufen (die HTML-Hülle, die gerenderte Seite und die gelieferte Zeile), und keiner hängt vom Parsen der Produktfelder ab:

import hashlib, re

def shell_fingerprint(html):
    """Aus einem ungerenderten GET. Erkennt eine Änderung des Bootstraps oder der Prefetch-Konfiguration."""
    view = re.search(r"viewName\s*=\s*'([^']+)'", html)
    api  = re.search(r"api:\s*'(mtop\.[^']+)'", html)
    ver  = re.search(r"cosmos_prefetch_mtop version ([\d.]+)", html)
    return {"viewName": view.group(1) if view else None,
            "prefetch_api": api.group(1) if api else None,
            "gop_version": ver.group(1) if ver else None}

def row_fingerprint(row):
    """Aus einer gelieferten Zeile. Bestätigt den von Ihrer Pipeline erwarteten Feldsatz."""
    keys = sorted(k for k in row if k not in ("input", "timestamp"))
    return {"fields_sha1": hashlib.sha1(",".join(keys).encode()).hexdigest()[:12]}

Bei echten Erfassungen lieferten beide Fingerabdrücke stabile Werte:

shell   unrendered GET : viewName=newDetail  api=mtop.aliexpress.pdp.pc.query  gop=20240605.195626.856
shell   rendered DOM   : viewName=newDetail  api=mtop.aliexpress.pdp.pc.query  gop=20240605.195626.856
row     1005012408061151 : fields_sha1=154f2f84da5f
row     1005001398867186 : fields_sha1=154f2f84da5f
row     1005011666876666 : fields_sha1=154f2f84da5f

Ein dritter Fingerabdruck der erfassten Nutzlast scheint nützlich, kann aber zu Fehlalarmen führen. Das Hashen der Modulmenge scheint dieselbe Idee zu sein, aber die Modulanzahl variierte mit dem Listing und dem Erfassungszeitpunkt, nicht nur mit einer neuen Bereitstellung. Die erfassten Nutzlasten hatten 28, 27 und 28 Module, und die PRICE-Schlüsselmenge unterschied sich zwischen 2 von ihnen.

Die Anzahl änderte sich auch innerhalb eines Produkts. Dieselbe Produkt-ID lieferte 27 Module und dann, Minuten später bei 2 Erfassungen, 26, sodass selbst eine produktbezogene Historie eher einen Schwellenwert als eine Gleichheitsprüfung benötigt. Basieren Sie Ihre Warnungen auf den Hüllen- und Zeilen-Fingerabdrücken, da deren Werte bei jeder Erfassung gleich blieben.

Wann Sie stattdessen den AliExpress-Datensatz kaufen sollten

Alle 3 Methoden starten mit bereits vorhandenen URLs. Wenn Ihre Frage den gesamten Markt betrifft, beginnen Sie mit dem gebrauchsfertigen Datensatz:

Bright-Data-Dataset-Marketplace-Seite für

Das Filterpanel erlaubt es Ihnen, Datensätze auszuwählen, bevor Sie dafür bezahlen.

Der AliExpress-Datensatz reduziert Auswahlaufwand und Sammelzeit. Sie filtern den Datensatz auf die benötigten Einträge, im Marketplace oder über die Filter Dataset API, und zahlen nur für Ihren gefilterten Snapshot. Diese Einträge existieren bereits, es gibt also keinen Sammeldurchlauf, auf den gewartet werden muss. Sie können ihn einmalig oder nach einem von Ihnen gewählten Aktualisierungsplan kaufen, und aktuelle Preise finden Sie auf der Preisseite für Datensätze.

Schätzen Sie die Liefergröße, bevor Sie bestellen. Einträge in der Datensatzprobe sind im Durchschnitt 12,75 KB als gelieferte JSON-Datei groß, planen Sie also mit etwa 1,3 GB pro 100.000 Einträgen. Der Datensatz wird auch im Parquet-Format geliefert, und dieselbe Probe war als Parquet fast 8-mal kleiner. Dieser Größenunterschied kann entscheiden, ob Sie die Datei direkt abfragen oder zuerst zwischenspeichern.

Verwenden Sie den Datensatz für marktweite Sortiments- und Abdeckungsfragen, und verwenden Sie die Scraper API für die konkreten Listings, die Sie verfolgen. Der Datensatz wird nach dem von Ihnen gewählten Plan aktualisiert, und eine Scraper-API-Sammlung liefert jedes Listing zum Zeitpunkt der Ausführung.

Fazit

Das Signierungsschema von AliExpress passt in eine Funktion, aber im Test blockierte das Gateway Aufrufe von einer IP-Adresse innerhalb des ersten Dutzends Anfragen, selbst mit korrekter Signatur. Da eine Blockierung einen Erfolgsstatuscode zurückgeben kann, basieren Sie jede Prüfung auf dem bxpunish-Header und auf einem Feld, das jedes Produkt hat, wie den Preis. Die robots.txt der Website verbietet den öffentlichen /item/-Pfad nicht, das ist also der Pfad, den Sie im großen Maßstab scrapen sollten.

Bright Datas AliExpress Scraper API liefert strukturierte Datensätze für diese Produktseiten, die Browser API erfasst den Preis jeder Variante, und der AliExpress-Datensatz eignet sich für marktweite Fragen. Starten Sie mit der kostenlosen Stufe, die 5.000 Anfragen pro Monat ohne Kreditkarte umfasst. Testen Sie sie mit 40 URLs aus Ihrem Katalog und prüfen Sie die Datensätze anhand der von Ihrer Pipeline benötigten Felder.

FAQ

Hat AliExpress eine API für Produktdaten?

Ja, für Verkäufer, Partner und genehmigte Dropshipper. Auf der AliExpress Open Platform autorisiert ein Verkäufer eine App für seinen eigenen Shop über OAuth 2.0, und die Partner-API deckt den Werbekatalog ab. Keine davon deckt den gesamten Marktplatz ab, sodass marktweite Preisdaten eine E-Commerce-Datenerfassung benötigen.

Wie erhalte ich eine AliExpress-Produkt-URL oder -ID?

Produkt-URLs folgen dem Muster /item/<item_id>.html, und die Entdeckung beginnt bei /w/wholesale-<keyword>.html. IDs hängen vom Host ab. Ein Produkt hat die ID 1005001398867186 auf .com und 3256801212552434 auf .us. Schlüsseln Sie jedes Produkt nach seiner endgültigen URL nach der regionalen Weiterleitung, damit es nicht unter 2 IDs erscheint.

Ist das Scraping von AliExpress-Produktdaten kostenlos?

Ja, im kleinen Maßstab. Bright Datas kostenlose Stufe umfasst 5.000 Anfragen pro Monat ohne Kreditkarte und deckt die Scraper API, Web Unlocker und die Browser API ab, sodass Sie sie zunächst mit Ihren eigenen URLs testen können. Playwright und curl_cffi sind Open Source. Im Produktionsmaßstab zahlen Sie hauptsächlich für IP-Adressen, da 2 Durchläufe mit je 60 signierten API-Aufrufen von einer IP-Adresse 7 bzw. 15 Mal Daten erhielten.

Was kostet eine AliExpress-Scraper-API?

Bright Datas AliExpress Scraper API wird pro geliefertem Datensatz berechnet, und Web Unlocker wird pro erfolgreicher Anfrage berechnet, sodass Sie nur für Ergebnisse zahlen. Die Browser API wird nach Traffic berechnet, sodass das Seitengewicht die Kosten vorhersagt. Eine Produktseite wog im Test etwa 3 MB. Aktuelle Preise finden Sie auf Bright Datas Preisseite.

Warum liefert mein AliExpress-Scraper leere Felder?

Weil das anfängliche HTML keine Preise oder Lagerbestände enthält. window.runParams ist ein leeres Objekt und <title> ist leer, sodass selektorbasierte Extraktoren nichts finden und keinen Fehler auslösen. Das JavaScript der Seite lädt die Felder später von mtop.aliexpress.pdp.pc.query nach. Führen Sie entweder das JavaScript aus oder rufen Sie diese API direkt auf.

Wie vermeide ich Blockierungen beim Scraping von AliExpress?

Senden Sie Anfragen über Bright Datas Scraper API oder Web Unlocker, die eingebaute Proxys und AliExpress-CAPTCHA-Lösung haben. Im Test entfernte weder ein neuer Cookie-Speicher noch eine 60-sekündige Wartezeit eine Blockierung von einer IP-Adresse. Blockierte Anfragen lieferten auch HTTP 200, prüfen Sie also den bxpunish-Header, nicht den Statuscode.

Warum ändern sich AliExpress-Preise?

Weil Aktionen befristet sind und je nach Land variieren. In einem Test über 6 Exit-Länder reichte der Rabatt eines Produkts von 52,5 % bis hinunter zu 4,1 % auf den Listenpreis, und die Länder unterschieden sich darin, ob Preise Steuern enthielten. Legen Sie für jede Preisreihe ein Exit-Land fest und speichern Sie es in der Zeile.

Gibt es einen AliExpress-MCP-Server?

Ja. Bright Datas MCP Server erlaubt es einem KI-Agenten, AliExpress-Produktseiten über dessen Tools scrape_as_markdown und scrape_batch abzurufen, die die Entsperrung übernehmen und Markdown liefern. In einem Testaufruf lieferte scrape_as_markdown Preis, Bewertung, Varianten und Kategoriepfad des Produkts. Die AliExpress-MCP-Seite erklärt die Einrichtung.

Die Daten benötigen dieselbe Validierung wie die HTTP-Antworten. Jede dieser 2 Prüfungen ist günstig hinzuzufügen und hilft Ihnen, nicht vergleichbare Preise zu erkennen, bevor sie ein Dashboard erreichen.

Der Rabatt variierte mit dem Exit-Land, nicht nur mit der Währung. Ich rief eine Produkt-ID über Web Unlocker im Markdown-Format aus 6 Exit-Ländern ab, und jedes Land lieferte eine andere Aktion:

Exit-LandWährungVerkaufspreisListenpreisRabatt
USAUSD$6,84$14,4052,5 %
Vereinigtes KönigreichGBP£9,83£11,1611,9 %
DeutschlandEUR11,69€13,29€12,0 %
BrasilienBRLR$62,25R$68,308,9 %
AustralienAUDAU$18,59AU$19,424,3 %
KanadaCADC$19,86C$20,704,1 %

Selbst die Prozentwerte sind nicht direkt vergleichbar, und jede Seite zeigt warum. Die US-Kaufbox beschriftet ihren Preis mit Ends :, sodass die US-Zeile ein zeitlich begrenztes Angebot ist, das zu einem Zeitpunkt erfasst wurde. Die UK-Seite sagt Price includes VAT, während die US-Seite Tax excluded sagt. Die deutsche Seite nennt den niedrigsten 30-Tage-Preis vor dem Rabatt, die EU-Referenzpreisregel, die dazu neigt, deutsche Rabatte kleiner erscheinen zu lassen.

Wegen dieser 3 Unterschiede legen Sie für jede Preisreihe ein Exit-Land fest, speichern es in der Zeile und vergleichen eine Reihe nur mit sich selbst. Web Unlocker legt es mit dem Parameter country fest, und die Browser API legt es mit einem -country-<code>-Suffix am Zonen-Benutzernamen fest. Wenn Sie die Aktionen selbst statt einer Preis-Pipeline benötigen, überwacht der AliExpress Promotions Tracker Konkurrenzaktionen für Sie.

Das britische Pfund-Zeichen ist das in voller Breite. Der UK-Shop verwendet £, U+FFE1 FULLWIDTH POUND SIGN, sodass ein mit £ (U+00A3) geschriebener Währungs-Regex nichts findet. Die deutschen und brasilianischen Shops verwenden im Preisfeld ein Komma als Dezimaltrennzeichen. Parsen Sie die Währung aus der angeforderten Shop-Einstellung und halten Sie das Zahlenparsing vom Symbol getrennt.

Der Preis jeder Variante und der vollständige Kategoriepfad

Bright Datas Browser API erfasst die SKU-Preiskarte von einer AliExpress-Produktseite, und Web Unlocker liefert den Kategorie-Breadcrumb aus dessen Fußbereich. Rezensionen haben ebenfalls einen eigenen Scraper, den AliExpress Reviews Scraper, dessen Datensätze Produkt-ID und URL enthalten.

Die eigene Antwort der Seite enthält die SKU-Preiskarte. Die mit capture_pdp protokollierten Erfassungen enthielten Preise für 141, 75, 20, 18, 15 und 6 SKUs. Für ein Produkt hatte die Preiskarte 6 unterschiedliche Preise, von 2,56 bis 10,96. Die Karte liegt im Modul PRICE, neben der vorausgewählten SKU und dem Feld region:

Chrome-DevTools-Response-Tab für eine pdp.pc.query-Anfrage, der region US, selectedSkuId 12000059478006652 und eine skuIdStrPriceInfoMap zeigt, deren erste drei Einträge 1er-Packs zu je 7,61 $, 7,58 $ und 7,71 $ mit je 1,09 $ Verkaufspreis sind, gefolgt von einem vierten Eintrag für ein 10er-Pack zu 57,34 $

Diese Erfassung stammt von einem Multipack-Listing. Die Seite wählt ein 1er-Pack zu 1,09 $ vor, und der vierte Eintrag ist ein 10er-Pack zu 57,34 $, sodass die Karte den eigenen Preis jeder Variante enthält.

Um den Preis jeder Variante zu erhalten, führen Sie capture_pdp über die Browser API aus, lesen Sie PRICE.skuIdStrPriceInfoMap und speichern Sie es mit item_id als Schlüssel. Lesen Sie die Karte aus der Region, deren Preise Sie benötigen, da sie auch regional variieren kann. Beim Leistungsschalter aus dem ersten Abschnitt hatte die Karte in einer US-Sitzung unterschiedliche Variantenpreise und in einer anderen Region einen einheitlichen Preis für alle 7 Varianten.

Web-Unlocker-Markdown enthält den Kategoriepfad. Die gerenderte Seite listet die Kategorien des Produkts als Breadcrumb im Fußbereich, und das GLOBAL_DATA.globalData des Gateways hat denselben Pfad in seinem Feld categoryPath, 13/5/141914. Der untenstehende Parser liest die Produktseite als Web-Unlocker-Markdown, das Format, das brightdata scrape standardmäßig liefert:

import re

CRUMB   = re.compile(r"^This product belongs to\s.*$", re.M)
CAT_URL = re.compile(r"/category/(\d+)/([a-z0-9-]+)\.html")

def categories_from_markdown(md):
    """Kategorie-IDs und URLs aus dem Fußbereich der Produktseite."""
    line = CRUMB.search(md)
    if not line:
        return []
    return [{"category_id": cid,
             "url": f"https://www.aliexpress.com/category/{cid}/{slug}.html"}
            for cid, slug in CAT_URL.findall(line.group(0))]

with open("page.md", encoding="utf-8") as fh:    # brightdata scrape  -o page.md
    print(categories_from_markdown(fh.read()))

Das \s am Ende des ersten Musters ist essenziell, da der Fußbereich U+00A0, ein geschütztes Leerzeichen, unmittelbar nach to setzt. Dasselbe Muster mit einem literalen Leerzeichen findet keine Übereinstimmung. Mit \s gibt der Parser den Kategoriepfad zurück:

[{'category_id': '13',     'url': '.../category/13/home-improvement.html'},
 {'category_id': '5',      'url': '.../category/5/electrical-equipments-supplies.html'},
 {'category_id': '141914', 'url': '.../category/141914/circuit-breakers.html'}]

Den Kategoriepfad zu erhalten, benötigt eine Web-Unlocker-Anfrage pro Produkt. Führen Sie den Parser für die Produkte aus, deren Taxonomie Sie benötigen, und speichern Sie das Ergebnis mit item_id als Schlüssel. Der Text des Fußbereichs kann sich ohne Vorankündigung ändern. Prüfen Sie daher zuerst das CRUMB-Muster, falls der Parser eine leere Liste zurückgibt.

Das Scraper Studio übernimmt eine individuelle Feldliste. Wenn Sie die benötigten Daten beschreiben, erstellt dessen KI einen startbereiten Scraper mit eingebauten Proxys und Entsperrung, und Sie können Ausgabefelder später hinzufügen oder ändern. Speziell für die Preisüberwachung sammelt die AliExpress Price Scraper API AliExpress-Preisdaten, damit Sie verfolgen können, wie sich Preise ändern.

Seiten- und Schema-Änderungen erkennen

Jeder bei diesem Ziel beobachtete Fehler war stillschweigend, überwachen Sie also die Seite selbst. Das Bootstrap-Skript der Seite enthält eine Build-Version, cosmos_prefetch_mtop version 20240605.195626.856, und wenn sich diese Version ändert, kann sich die Prefetch-Konfiguration mit ihr ändern. Ein Fingerabdruck erkennt diese Änderung direkt. Ohne ihn würde Ihr eigener Scraper sie nur als Null-Werte zeigen.

Die 2 untenstehenden Fingerabdrücke prüfen 3 Stufen (die HTML-Hülle, die gerenderte Seite und die gelieferte Zeile), und keiner hängt vom Parsen der Produktfelder ab:

import hashlib, re

def shell_fingerprint(html):
    """Aus einem ungerenderten GET. Erkennt eine Änderung des Bootstraps oder der Prefetch-Konfiguration."""
    view = re.search(r"viewName\s*=\s*'([^']+)'", html)
    api  = re.search(r"api:\s*'(mtop\.[^']+)'", html)
    ver  = re.search(r"cosmos_prefetch_mtop version ([\d.]+)", html)
    return {"viewName": view.group(1) if view else None,
            "prefetch_api": api.group(1) if api else None,
            "gop_version": ver.group(1) if ver else None}

def row_fingerprint(row):
    """Aus einer gelieferten Zeile. Bestätigt den von Ihrer Pipeline erwarteten Feldsatz."""
    keys = sorted(k for k in row if k not in ("input", "timestamp"))
    return {"fields_sha1": hashlib.sha1(",".join(keys).encode()).hexdigest()[:12]}

Bei echten Erfassungen lieferten beide Fingerabdrücke stabile Werte:

shell   unrendered GET : viewName=newDetail  api=mtop.aliexpress.pdp.pc.query  gop=20240605.195626.856
shell   rendered DOM   : viewName=newDetail  api=mtop.aliexpress.pdp.pc.query  gop=20240605.195626.856
row     1005012408061151 : fields_sha1=154f2f84da5f
row     1005001398867186 : fields_sha1=154f2f84da5f
row     1005011666876666 : fields_sha1=154f2f84da5f

Ein dritter Fingerabdruck der erfassten Nutzlast scheint nützlich, kann aber zu Fehlalarmen führen. Das Hashen der Modulmenge scheint dieselbe Idee zu sein, aber die Modulanzahl variierte mit dem Listing und dem Erfassungszeitpunkt, nicht nur mit einer neuen Bereitstellung. Die erfassten Nutzlasten hatten 28, 27 und 28 Module, und die PRICE-Schlüsselmenge unterschied sich zwischen 2 von ihnen.

Die Anzahl änderte sich auch innerhalb eines Produkts. Dieselbe Produkt-ID lieferte 27 Module und dann, Minuten später bei 2 Erfassungen, 26, sodass selbst eine produktbezogene Historie eher einen Schwellenwert als eine Gleichheitsprüfung benötigt. Basieren Sie Ihre Warnungen auf den Hüllen- und Zeilen-Fingerabdrücken, da deren Werte bei jeder Erfassung gleich blieben.

Wann Sie stattdessen den AliExpress-Datensatz kaufen sollten

Alle 3 Methoden starten mit bereits vorhandenen URLs. Wenn Ihre Frage den gesamten Markt betrifft, beginnen Sie mit dem gebrauchsfertigen Datensatz:

Bright-Data-Dataset-Marketplace-Seite für

Das Filterpanel erlaubt es Ihnen, Datensätze auszuwählen, bevor Sie dafür bezahlen.

Der AliExpress-Datensatz reduziert Auswahlaufwand und Sammelzeit. Sie filtern den Datensatz auf die benötigten Einträge, im Marketplace oder über die Filter Dataset API, und zahlen nur für Ihren gefilterten Snapshot. Diese Einträge existieren bereits, es gibt also keinen Sammeldurchlauf, auf den gewartet werden muss. Sie können ihn einmalig oder nach einem von Ihnen gewählten Aktualisierungsplan kaufen, und aktuelle Preise finden Sie auf der Preisseite für Datensätze.

Schätzen Sie die Liefergröße, bevor Sie bestellen. Einträge in der Datensatzprobe sind im Durchschnitt 12,75 KB als gelieferte JSON-Datei groß, planen Sie also mit etwa 1,3 GB pro 100.000 Einträgen. Der Datensatz wird auch im Parquet-Format geliefert, und dieselbe Probe war als Parquet fast 8-mal kleiner. Dieser Größenunterschied kann entscheiden, ob Sie die Datei direkt abfragen oder zuerst zwischenspeichern.

Verwenden Sie den Datensatz für marktweite Sortiments- und Abdeckungsfragen, und verwenden Sie die Scraper API für die konkreten Listings, die Sie verfolgen. Der Datensatz wird nach dem von Ihnen gewählten Plan aktualisiert, und eine Scraper-API-Sammlung liefert jedes Listing zum Zeitpunkt der Ausführung.

Fazit

Das Signierungsschema von AliExpress passt in eine Funktion, aber im Test blockierte das Gateway Aufrufe von einer IP-Adresse innerhalb des ersten Dutzends Anfragen, selbst mit korrekter Signatur. Da eine Blockierung einen Erfolgsstatuscode zurückgeben kann, basieren Sie jede Prüfung auf dem bxpunish-Header und auf einem Feld, das jedes Produkt hat, wie den Preis. Die robots.txt der Website verbietet den öffentlichen /item/-Pfad nicht, das ist also der Pfad, den Sie im großen Maßstab scrapen sollten.

Bright Datas AliExpress Scraper API liefert strukturierte Datensätze für diese Produktseiten, die Browser API erfasst den Preis jeder Variante, und der AliExpress-Datensatz eignet sich für marktweite Fragen. Starten Sie mit der kostenlosen Stufe, die 5.000 Anfragen pro Monat ohne Kreditkarte umfasst. Testen Sie sie mit 40 URLs aus Ihrem Katalog und prüfen Sie die Datensätze anhand der von Ihrer Pipeline benötigten Felder.

FAQ

Hat AliExpress eine API für Produktdaten?

Ja, für Verkäufer, Partner und genehmigte Dropshipper. Auf der AliExpress Open Platform autorisiert ein Verkäufer eine App für seinen eigenen Shop über OAuth 2.0, und die Partner-API deckt den Werbekatalog ab. Keine davon deckt den gesamten Marktplatz ab, sodass marktweite Preisdaten eine E-Commerce-Datenerfassung benötigen.

Wie erhalte ich eine AliExpress-Produkt-URL oder -ID?

Produkt-URLs folgen dem Muster /item/<item_id>.html, und die Entdeckung beginnt bei /w/wholesale-<keyword>.html. IDs hängen vom Host ab. Ein Produkt hat die ID 1005001398867186 auf .com und 3256801212552434 auf .us. Schlüsseln Sie jedes Produkt nach seiner endgültigen URL nach der regionalen Weiterleitung, damit es nicht unter 2 IDs erscheint.

Ist das Scraping von AliExpress-Produktdaten kostenlos?

Ja, im kleinen Maßstab. Bright Datas kostenlose Stufe umfasst 5.000 Anfragen pro Monat ohne Kreditkarte und deckt die Scraper API, Web Unlocker und die Browser API ab, sodass Sie sie zunächst mit Ihren eigenen URLs testen können. Playwright und curl_cffi sind Open Source. Im Produktionsmaßstab zahlen Sie hauptsächlich für IP-Adressen, da 2 Durchläufe mit je 60 signierten API-Aufrufen von einer IP-Adresse 7 bzw. 15 Mal Daten erhielten.

Was kostet eine AliExpress-Scraper-API?

Bright Datas AliExpress Scraper API wird pro geliefertem Datensatz berechnet, und Web Unlocker wird pro erfolgreicher Anfrage berechnet, sodass Sie nur für Ergebnisse zahlen. Die Browser API wird nach Traffic berechnet, sodass das Seitengewicht die Kosten vorhersagt. Eine Produktseite wog im Test etwa 3 MB. Aktuelle Preise finden Sie auf Bright Datas Preisseite.

Warum liefert mein AliExpress-Scraper leere Felder?

Weil das anfängliche HTML keine Preise oder Lagerbestände enthält. window.runParams ist ein leeres Objekt und <title> ist leer, sodass selektorbasierte Extraktoren nichts finden und keinen Fehler auslösen. Das JavaScript der Seite lädt die Felder später von mtop.aliexpress.pdp.pc.query nach. Führen Sie entweder das JavaScript aus oder rufen Sie diese API direkt auf.

Wie vermeide ich Blockierungen beim Scraping von AliExpress?

Senden Sie Anfragen über Bright Datas Scraper API oder Web Unlocker, die eingebaute Proxys und AliExpress-CAPTCHA-Lösung haben. Im Test entfernte weder ein neuer Cookie-Speicher noch eine 60-sekündige Wartezeit eine Blockierung von einer IP-Adresse. Blockierte Anfragen lieferten auch HTTP 200, prüfen Sie also den bxpunish-Header, nicht den Statuscode.

Warum ändern sich AliExpress-Preise?

Weil Aktionen befristet sind und je nach Land variieren. In einem Test über 6 Exit-Länder reichte der Rabatt eines Produkts von 52,5 % bis hinunter zu 4,1 % auf den Listenpreis, und die Länder unterschieden sich darin, ob Preise Steuern enthielten. Legen Sie für jede Preisreihe ein Exit-Land fest und speichern Sie es in der Zeile.

Gibt es einen AliExpress-MCP-Server?

Ja. Bright Datas MCP Server erlaubt es einem KI-Agenten, AliExpress-Produktseiten über dessen Tools scrape_as_markdown und scrape_batch abzurufen, die die Entsperrung übernehmen und Markdown liefern. In einem Testaufruf lieferte scrape_as_markdown Preis, Bewertung, Varianten und Kategoriepfad des Produkts. Die AliExpress-MCP-Seite erklärt die Einrichtung.

Schätzen Sie die Liefergröße, bevor Sie bestellen. Einträge in der Datensatzprobe sind im Durchschnitt 12,75 KB als gelieferte JSON-Datei groß, planen Sie also mit etwa 1,3 GB pro 100.000 Einträgen. Der Datensatz wird auch im Parquet-Format geliefert, und dieselbe Probe war als Parquet fast 8-mal kleiner. Dieser Größenunterschied kann entscheiden, ob Sie die Datei direkt abfragen oder zuerst zwischenspeichern.

Verwenden Sie den Datensatz für marktweite Sortiments- und Abdeckungsfragen, und verwenden Sie die Scraper API für die konkreten Listings, die Sie verfolgen. Der Datensatz wird nach dem von Ihnen gewählten Plan aktualisiert, und eine Scraper-API-Sammlung liefert jedes Listing zum Zeitpunkt der Ausführung.

Fazit

Das Signierungsschema von AliExpress passt in eine Funktion, aber im Test blockierte das Gateway Aufrufe von einer IP-Adresse innerhalb des ersten Dutzends Anfragen, selbst mit korrekter Signatur. Da eine Blockierung einen Erfolgsstatuscode zurückgeben kann, basieren Sie jede Prüfung auf dem bxpunish-Header und auf einem Feld, das jedes Produkt hat, wie den Preis. Die robots.txt der Website verbietet den öffentlichen /item/-Pfad nicht, das ist also der Pfad, den Sie im großen Maßstab scrapen sollten.

Bright Datas AliExpress Scraper API liefert strukturierte Datensätze für diese Produktseiten, die Browser API erfasst den Preis jeder Variante, und der AliExpress-Datensatz eignet sich für marktweite Fragen. Starten Sie mit der kostenlosen Stufe, die 5.000 Anfragen pro Monat ohne Kreditkarte umfasst. Testen Sie sie mit 40 URLs aus Ihrem Katalog und prüfen Sie die Datensätze anhand der von Ihrer Pipeline benötigten Felder.

FAQ

Hat AliExpress eine API für Produktdaten?

Ja, für Verkäufer, Partner und genehmigte Dropshipper. Auf der AliExpress Open Platform autorisiert ein Verkäufer eine App für seinen eigenen Shop über OAuth 2.0, und die Partner-API deckt den Werbekatalog ab. Keine davon deckt den gesamten Marktplatz ab, sodass marktweite Preisdaten eine E-Commerce-Datenerfassung benötigen.

Wie erhalte ich eine AliExpress-Produkt-URL oder -ID?

Produkt-URLs folgen dem Muster /item/<item_id>.html, und die Entdeckung beginnt bei /w/wholesale-<keyword>.html. IDs hängen vom Host ab. Ein Produkt hat die ID 1005001398867186 auf .com und 3256801212552434 auf .us. Schlüsseln Sie jedes Produkt nach seiner endgültigen URL nach der regionalen Weiterleitung, damit es nicht unter 2 IDs erscheint.

Ist das Scraping von AliExpress-Produktdaten kostenlos?

Ja, im kleinen Maßstab. Bright Datas kostenlose Stufe umfasst 5.000 Anfragen pro Monat ohne Kreditkarte und deckt die Scraper API, Web Unlocker und die Browser API ab, sodass Sie sie zunächst mit Ihren eigenen URLs testen können. Playwright und curl_cffi sind Open Source. Im Produktionsmaßstab zahlen Sie hauptsächlich für IP-Adressen, da 2 Durchläufe mit je 60 signierten API-Aufrufen von einer IP-Adresse 7 bzw. 15 Mal Daten erhielten.

Was kostet eine AliExpress-Scraper-API?

Bright Datas AliExpress Scraper API wird pro geliefertem Datensatz berechnet, und Web Unlocker wird pro erfolgreicher Anfrage berechnet, sodass Sie nur für Ergebnisse zahlen. Die Browser API wird nach Traffic berechnet, sodass das Seitengewicht die Kosten vorhersagt. Eine Produktseite wog im Test etwa 3 MB. Aktuelle Preise finden Sie auf Bright Datas Preisseite.

Warum liefert mein AliExpress-Scraper leere Felder?

Weil das anfängliche HTML keine Preise oder Lagerbestände enthält. window.runParams ist ein leeres Objekt und <title> ist leer, sodass selektorbasierte Extraktoren nichts finden und keinen Fehler auslösen. Das JavaScript der Seite lädt die Felder später von mtop.aliexpress.pdp.pc.query nach. Führen Sie entweder das JavaScript aus oder rufen Sie diese API direkt auf.

Wie vermeide ich Blockierungen beim Scraping von AliExpress?

Senden Sie Anfragen über Bright Datas Scraper API oder Web Unlocker, die eingebaute Proxys und AliExpress-CAPTCHA-Lösung haben. Im Test entfernte weder ein neuer Cookie-Speicher noch eine 60-sekündige Wartezeit eine Blockierung von einer IP-Adresse. Blockierte Anfragen lieferten auch HTTP 200, prüfen Sie also den bxpunish-Header, nicht den Statuscode.

Warum ändern sich AliExpress-Preise?

Weil Aktionen befristet sind und je nach Land variieren. In einem Test über 6 Exit-Länder reichte der Rabatt eines Produkts von 52,5 % bis hinunter zu 4,1 % auf den Listenpreis, und die Länder unterschieden sich darin, ob Preise Steuern enthielten. Legen Sie für jede Preisreihe ein Exit-Land fest und speichern Sie es in der Zeile.

Gibt es einen AliExpress-MCP-Server?

Ja. Bright Datas MCP Server erlaubt es einem KI-Agenten, AliExpress-Produktseiten über dessen Tools scrape_as_markdown und scrape_batch abzurufen, die die Entsperrung übernehmen und Markdown liefern. In einem Testaufruf lieferte scrape_as_markdown Preis, Bewertung, Varianten und Kategoriepfad des Produkts. Die AliExpress-MCP-Seite erklärt die Einrichtung.

Der AliExpress-Datensatz reduziert Auswahlaufwand und Sammelzeit. Sie filtern den Datensatz auf die benötigten Einträge, im Marketplace oder über die Filter Dataset API, und zahlen nur für Ihren gefilterten Snapshot. Diese Einträge existieren bereits, es gibt also keinen Sammeldurchlauf, auf den gewartet werden muss. Sie können ihn einmalig oder nach einem von Ihnen gewählten Aktualisierungsplan kaufen, und aktuelle Preise finden Sie auf der Preisseite für Datensätze.

Schätzen Sie die Liefergröße, bevor Sie bestellen. Einträge in der Datensatzprobe sind im Durchschnitt 12,75 KB als gelieferte JSON-Datei groß, planen Sie also mit etwa 1,3 GB pro 100.000 Einträgen. Der Datensatz wird auch im Parquet-Format geliefert, und dieselbe Probe war als Parquet fast 8-mal kleiner. Dieser Größenunterschied kann entscheiden, ob Sie die Datei direkt abfragen oder zuerst zwischenspeichern.

Verwenden Sie den Datensatz für marktweite Sortiments- und Abdeckungsfragen, und verwenden Sie die Scraper API für die konkreten Listings, die Sie verfolgen. Der Datensatz wird nach dem von Ihnen gewählten Plan aktualisiert, und eine Scraper-API-Sammlung liefert jedes Listing zum Zeitpunkt der Ausführung.

Fazit

Das Signierungsschema von AliExpress passt in eine Funktion, aber im Test blockierte das Gateway Aufrufe von einer IP-Adresse innerhalb des ersten Dutzends Anfragen, selbst mit korrekter Signatur. Da eine Blockierung einen Erfolgsstatuscode zurückgeben kann, basieren Sie jede Prüfung auf dem bxpunish-Header und auf einem Feld, das jedes Produkt hat, wie den Preis. Die robots.txt der Website verbietet den öffentlichen /item/-Pfad nicht, das ist also der Pfad, den Sie im großen Maßstab scrapen sollten.

Bright Datas AliExpress Scraper API liefert strukturierte Datensätze für diese Produktseiten, die Browser API erfasst den Preis jeder Variante, und der AliExpress-Datensatz eignet sich für marktweite Fragen. Starten Sie mit der kostenlosen Stufe, die 5.000 Anfragen pro Monat ohne Kreditkarte umfasst. Testen Sie sie mit 40 URLs aus Ihrem Katalog und prüfen Sie die Datensätze anhand der von Ihrer Pipeline benötigten Felder.

FAQ

Hat AliExpress eine API für Produktdaten?

Ja, für Verkäufer, Partner und genehmigte Dropshipper. Auf der AliExpress Open Platform autorisiert ein Verkäufer eine App für seinen eigenen Shop über OAuth 2.0, und die Partner-API deckt den Werbekatalog ab. Keine davon deckt den gesamten Marktplatz ab, sodass marktweite Preisdaten eine E-Commerce-Datenerfassung benötigen.

Wie erhalte ich eine AliExpress-Produkt-URL oder -ID?

Produkt-URLs folgen dem Muster /item/<item_id>.html, und die Entdeckung beginnt bei /w/wholesale-<keyword>.html. IDs hängen vom Host ab. Ein Produkt hat die ID 1005001398867186 auf .com und 3256801212552434 auf .us. Schlüsseln Sie jedes Produkt nach seiner endgültigen URL nach der regionalen Weiterleitung, damit es nicht unter 2 IDs erscheint.

Ist das Scraping von AliExpress-Produktdaten kostenlos?

Ja, im kleinen Maßstab. Bright Datas kostenlose Stufe umfasst 5.000 Anfragen pro Monat ohne Kreditkarte und deckt die Scraper API, Web Unlocker und die Browser API ab, sodass Sie sie zunächst mit Ihren eigenen URLs testen können. Playwright und curl_cffi sind Open Source. Im Produktionsmaßstab zahlen Sie hauptsächlich für IP-Adressen, da 2 Durchläufe mit je 60 signierten API-Aufrufen von einer IP-Adresse 7 bzw. 15 Mal Daten erhielten.

Was kostet eine AliExpress-Scraper-API?

Bright Datas AliExpress Scraper API wird pro geliefertem Datensatz berechnet, und Web Unlocker wird pro erfolgreicher Anfrage berechnet, sodass Sie nur für Ergebnisse zahlen. Die Browser API wird nach Traffic berechnet, sodass das Seitengewicht die Kosten vorhersagt. Eine Produktseite wog im Test etwa 3 MB. Aktuelle Preise finden Sie auf Bright Datas Preisseite.

Warum liefert mein AliExpress-Scraper leere Felder?

Weil das anfängliche HTML keine Preise oder Lagerbestände enthält. window.runParams ist ein leeres Objekt und <title> ist leer, sodass selektorbasierte Extraktoren nichts finden und keinen Fehler auslösen. Das JavaScript der Seite lädt die Felder später von mtop.aliexpress.pdp.pc.query nach. Führen Sie entweder das JavaScript aus oder rufen Sie diese API direkt auf.

Wie vermeide ich Blockierungen beim Scraping von AliExpress?

Senden Sie Anfragen über Bright Datas Scraper API oder Web Unlocker, die eingebaute Proxys und AliExpress-CAPTCHA-Lösung haben. Im Test entfernte weder ein neuer Cookie-Speicher noch eine 60-sekündige Wartezeit eine Blockierung von einer IP-Adresse. Blockierte Anfragen lieferten auch HTTP 200, prüfen Sie also den bxpunish-Header, nicht den Statuscode.

Warum ändern sich AliExpress-Preise?

Weil Aktionen befristet sind und je nach Land variieren. In einem Test über 6 Exit-Länder reichte der Rabatt eines Produkts von 52,5 % bis hinunter zu 4,1 % auf den Listenpreis, und die Länder unterschieden sich darin, ob Preise Steuern enthielten. Legen Sie für jede Preisreihe ein Exit-Land fest und speichern Sie es in der Zeile.

Gibt es einen AliExpress-MCP-Server?

Ja. Bright Datas MCP Server erlaubt es einem KI-Agenten, AliExpress-Produktseiten über dessen Tools scrape_as_markdown und scrape_batch abzurufen, die die Entsperrung übernehmen und Markdown liefern. In einem Testaufruf lieferte scrape_as_markdown Preis, Bewertung, Varianten und Kategoriepfad des Produkts. Die AliExpress-MCP-Seite erklärt die Einrichtung.

Ein dritter Fingerabdruck der erfassten Nutzlast scheint nützlich, kann aber zu Fehlalarmen führen. Das Hashen der Modulmenge scheint dieselbe Idee zu sein, aber die Modulanzahl variierte mit dem Listing und dem Erfassungszeitpunkt, nicht nur mit einer neuen Bereitstellung. Die erfassten Nutzlasten hatten 28, 27 und 28 Module, und die PRICE-Schlüsselmenge unterschied sich zwischen 2 von ihnen.

Die Anzahl änderte sich auch innerhalb eines Produkts. Dieselbe Produkt-ID lieferte 27 Module und dann, Minuten später bei 2 Erfassungen, 26, sodass selbst eine produktbezogene Historie eher einen Schwellenwert als eine Gleichheitsprüfung benötigt. Basieren Sie Ihre Warnungen auf den Hüllen- und Zeilen-Fingerabdrücken, da deren Werte bei jeder Erfassung gleich blieben.

Wann Sie stattdessen den AliExpress-Datensatz kaufen sollten

Alle 3 Methoden starten mit bereits vorhandenen URLs. Wenn Ihre Frage den gesamten Markt betrifft, beginnen Sie mit dem gebrauchsfertigen Datensatz:

Bright-Data-Dataset-Marketplace-Seite für

Das Filterpanel erlaubt es Ihnen, Datensätze auszuwählen, bevor Sie dafür bezahlen.

Der AliExpress-Datensatz reduziert Auswahlaufwand und Sammelzeit. Sie filtern den Datensatz auf die benötigten Einträge, im Marketplace oder über die Filter Dataset API, und zahlen nur für Ihren gefilterten Snapshot. Diese Einträge existieren bereits, es gibt also keinen Sammeldurchlauf, auf den gewartet werden muss. Sie können ihn einmalig oder nach einem von Ihnen gewählten Aktualisierungsplan kaufen, und aktuelle Preise finden Sie auf der Preisseite für Datensätze.

Schätzen Sie die Liefergröße, bevor Sie bestellen. Einträge in der Datensatzprobe sind im Durchschnitt 12,75 KB als gelieferte JSON-Datei groß, planen Sie also mit etwa 1,3 GB pro 100.000 Einträgen. Der Datensatz wird auch im Parquet-Format geliefert, und dieselbe Probe war als Parquet fast 8-mal kleiner. Dieser Größenunterschied kann entscheiden, ob Sie die Datei direkt abfragen oder zuerst zwischenspeichern.

Verwenden Sie den Datensatz für marktweite Sortiments- und Abdeckungsfragen, und verwenden Sie die Scraper API für die konkreten Listings, die Sie verfolgen. Der Datensatz wird nach dem von Ihnen gewählten Plan aktualisiert, und eine Scraper-API-Sammlung liefert jedes Listing zum Zeitpunkt der Ausführung.

Fazit

Das Signierungsschema von AliExpress passt in eine Funktion, aber im Test blockierte das Gateway Aufrufe von einer IP-Adresse innerhalb des ersten Dutzends Anfragen, selbst mit korrekter Signatur. Da eine Blockierung einen Erfolgsstatuscode zurückgeben kann, basieren Sie jede Prüfung auf dem bxpunish-Header und auf einem Feld, das jedes Produkt hat, wie den Preis. Die robots.txt der Website verbietet den öffentlichen /item/-Pfad nicht, das ist also der Pfad, den Sie im großen Maßstab scrapen sollten.

Bright Datas AliExpress Scraper API liefert strukturierte Datensätze für diese Produktseiten, die Browser API erfasst den Preis jeder Variante, und der AliExpress-Datensatz eignet sich für marktweite Fragen. Starten Sie mit der kostenlosen Stufe, die 5.000 Anfragen pro Monat ohne Kreditkarte umfasst. Testen Sie sie mit 40 URLs aus Ihrem Katalog und prüfen Sie die Datensätze anhand der von Ihrer Pipeline benötigten Felder.

FAQ

Hat AliExpress eine API für Produktdaten?

Ja, für Verkäufer, Partner und genehmigte Dropshipper. Auf der AliExpress Open Platform autorisiert ein Verkäufer eine App für seinen eigenen Shop über OAuth 2.0, und die Partner-API deckt den Werbekatalog ab. Keine davon deckt den gesamten Marktplatz ab, sodass marktweite Preisdaten eine E-Commerce-Datenerfassung benötigen.

Wie erhalte ich eine AliExpress-Produkt-URL oder -ID?

Produkt-URLs folgen dem Muster /item/<item_id>.html, und die Entdeckung beginnt bei /w/wholesale-<keyword>.html. IDs hängen vom Host ab. Ein Produkt hat die ID 1005001398867186 auf .com und 3256801212552434 auf .us. Schlüsseln Sie jedes Produkt nach seiner endgültigen URL nach der regionalen Weiterleitung, damit es nicht unter 2 IDs erscheint.

Ist das Scraping von AliExpress-Produktdaten kostenlos?

Ja, im kleinen Maßstab. Bright Datas kostenlose Stufe umfasst 5.000 Anfragen pro Monat ohne Kreditkarte und deckt die Scraper API, Web Unlocker und die Browser API ab, sodass Sie sie zunächst mit Ihren eigenen URLs testen können. Playwright und curl_cffi sind Open Source. Im Produktionsmaßstab zahlen Sie hauptsächlich für IP-Adressen, da 2 Durchläufe mit je 60 signierten API-Aufrufen von einer IP-Adresse 7 bzw. 15 Mal Daten erhielten.

Was kostet eine AliExpress-Scraper-API?

Bright Datas AliExpress Scraper API wird pro geliefertem Datensatz berechnet, und Web Unlocker wird pro erfolgreicher Anfrage berechnet, sodass Sie nur für Ergebnisse zahlen. Die Browser API wird nach Traffic berechnet, sodass das Seitengewicht die Kosten vorhersagt. Eine Produktseite wog im Test etwa 3 MB. Aktuelle Preise finden Sie auf Bright Datas Preisseite.

Warum liefert mein AliExpress-Scraper leere Felder?

Weil das anfängliche HTML keine Preise oder Lagerbestände enthält. window.runParams ist ein leeres Objekt und <title> ist leer, sodass selektorbasierte Extraktoren nichts finden und keinen Fehler auslösen. Das JavaScript der Seite lädt die Felder später von mtop.aliexpress.pdp.pc.query nach. Führen Sie entweder das JavaScript aus oder rufen Sie diese API direkt auf.

Wie vermeide ich Blockierungen beim Scraping von AliExpress?

Senden Sie Anfragen über Bright Datas Scraper API oder Web Unlocker, die eingebaute Proxys und AliExpress-CAPTCHA-Lösung haben. Im Test entfernte weder ein neuer Cookie-Speicher noch eine 60-sekündige Wartezeit eine Blockierung von einer IP-Adresse. Blockierte Anfragen lieferten auch HTTP 200, prüfen Sie also den bxpunish-Header, nicht den Statuscode.

Warum ändern sich AliExpress-Preise?

Weil Aktionen befristet sind und je nach Land variieren. In einem Test über 6 Exit-Länder reichte der Rabatt eines Produkts von 52,5 % bis hinunter zu 4,1 % auf den Listenpreis, und die Länder unterschieden sich darin, ob Preise Steuern enthielten. Legen Sie für jede Preisreihe ein Exit-Land fest und speichern Sie es in der Zeile.

Gibt es einen AliExpress-MCP-Server?

Ja. Bright Datas MCP Server erlaubt es einem KI-Agenten, AliExpress-Produktseiten über dessen Tools scrape_as_markdown und scrape_batch abzurufen, die die Entsperrung übernehmen und Markdown liefern. In einem Testaufruf lieferte scrape_as_markdown Preis, Bewertung, Varianten und Kategoriepfad des Produkts. Die AliExpress-MCP-Seite erklärt die Einrichtung.

Jeder bei diesem Ziel beobachtete Fehler war stillschweigend, überwachen Sie also die Seite selbst. Das Bootstrap-Skript der Seite enthält eine Build-Version, cosmos_prefetch_mtop version 20240605.195626.856, und wenn sich diese Version ändert, kann sich die Prefetch-Konfiguration mit ihr ändern. Ein Fingerabdruck erkennt diese Änderung direkt. Ohne ihn würde Ihr eigener Scraper sie nur als Null-Werte zeigen.

Die 2 untenstehenden Fingerabdrücke prüfen 3 Stufen (die HTML-Hülle, die gerenderte Seite und die gelieferte Zeile), und keiner hängt vom Parsen der Produktfelder ab:

import hashlib, re

def shell_fingerprint(html):
    """Aus einem ungerenderten GET. Erkennt eine Änderung des Bootstraps oder der Prefetch-Konfiguration."""
    view = re.search(r"viewName\s*=\s*'([^']+)'", html)
    api  = re.search(r"api:\s*'(mtop\.[^']+)'", html)
    ver  = re.search(r"cosmos_prefetch_mtop version ([\d.]+)", html)
    return {"viewName": view.group(1) if view else None,
            "prefetch_api": api.group(1) if api else None,
            "gop_version": ver.group(1) if ver else None}

def row_fingerprint(row):
    """Aus einer gelieferten Zeile. Bestätigt den von Ihrer Pipeline erwarteten Feldsatz."""
    keys = sorted(k for k in row if k not in ("input", "timestamp"))
    return {"fields_sha1": hashlib.sha1(",".join(keys).encode()).hexdigest()[:12]}

Bei echten Erfassungen lieferten beide Fingerabdrücke stabile Werte:

shell   unrendered GET : viewName=newDetail  api=mtop.aliexpress.pdp.pc.query  gop=20240605.195626.856
shell   rendered DOM   : viewName=newDetail  api=mtop.aliexpress.pdp.pc.query  gop=20240605.195626.856
row     1005012408061151 : fields_sha1=154f2f84da5f
row     1005001398867186 : fields_sha1=154f2f84da5f
row     1005011666876666 : fields_sha1=154f2f84da5f

Ein dritter Fingerabdruck der erfassten Nutzlast scheint nützlich, kann aber zu Fehlalarmen führen. Das Hashen der Modulmenge scheint dieselbe Idee zu sein, aber die Modulanzahl variierte mit dem Listing und dem Erfassungszeitpunkt, nicht nur mit einer neuen Bereitstellung. Die erfassten Nutzlasten hatten 28, 27 und 28 Module, und die PRICE-Schlüsselmenge unterschied sich zwischen 2 von ihnen.

Die Anzahl änderte sich auch innerhalb eines Produkts. Dieselbe Produkt-ID lieferte 27 Module und dann, Minuten später bei 2 Erfassungen, 26, sodass selbst eine produktbezogene Historie eher einen Schwellenwert als eine Gleichheitsprüfung benötigt. Basieren Sie Ihre Warnungen auf den Hüllen- und Zeilen-Fingerabdrücken, da deren Werte bei jeder Erfassung gleich blieben.

Wann Sie stattdessen den AliExpress-Datensatz kaufen sollten

Alle 3 Methoden starten mit bereits vorhandenen URLs. Wenn Ihre Frage den gesamten Markt betrifft, beginnen Sie mit dem gebrauchsfertigen Datensatz:

Bright-Data-Dataset-Marketplace-Seite für

Das Filterpanel erlaubt es Ihnen, Datensätze auszuwählen, bevor Sie dafür bezahlen.

Der AliExpress-Datensatz reduziert Auswahlaufwand und Sammelzeit. Sie filtern den Datensatz auf die benötigten Einträge, im Marketplace oder über die Filter Dataset API, und zahlen nur für Ihren gefilterten Snapshot. Diese Einträge existieren bereits, es gibt also keinen Sammeldurchlauf, auf den gewartet werden muss. Sie können ihn einmalig oder nach einem von Ihnen gewählten Aktualisierungsplan kaufen, und aktuelle Preise finden Sie auf der Preisseite für Datensätze.

Schätzen Sie die Liefergröße, bevor Sie bestellen. Einträge in der Datensatzprobe sind im Durchschnitt 12,75 KB als gelieferte JSON-Datei groß, planen Sie also mit etwa 1,3 GB pro 100.000 Einträgen. Der Datensatz wird auch im Parquet-Format geliefert, und dieselbe Probe war als Parquet fast 8-mal kleiner. Dieser Größenunterschied kann entscheiden, ob Sie die Datei direkt abfragen oder zuerst zwischenspeichern.

Verwenden Sie den Datensatz für marktweite Sortiments- und Abdeckungsfragen, und verwenden Sie die Scraper API für die konkreten Listings, die Sie verfolgen. Der Datensatz wird nach dem von Ihnen gewählten Plan aktualisiert, und eine Scraper-API-Sammlung liefert jedes Listing zum Zeitpunkt der Ausführung.

Fazit

Das Signierungsschema von AliExpress passt in eine Funktion, aber im Test blockierte das Gateway Aufrufe von einer IP-Adresse innerhalb des ersten Dutzends Anfragen, selbst mit korrekter Signatur. Da eine Blockierung einen Erfolgsstatuscode zurückgeben kann, basieren Sie jede Prüfung auf dem bxpunish-Header und auf einem Feld, das jedes Produkt hat, wie den Preis. Die robots.txt der Website verbietet den öffentlichen /item/-Pfad nicht, das ist also der Pfad, den Sie im großen Maßstab scrapen sollten.

Bright Datas AliExpress Scraper API liefert strukturierte Datensätze für diese Produktseiten, die Browser API erfasst den Preis jeder Variante, und der AliExpress-Datensatz eignet sich für marktweite Fragen. Starten Sie mit der kostenlosen Stufe, die 5.000 Anfragen pro Monat ohne Kreditkarte umfasst. Testen Sie sie mit 40 URLs aus Ihrem Katalog und prüfen Sie die Datensätze anhand der von Ihrer Pipeline benötigten Felder.

FAQ

Hat AliExpress eine API für Produktdaten?

Ja, für Verkäufer, Partner und genehmigte Dropshipper. Auf der AliExpress Open Platform autorisiert ein Verkäufer eine App für seinen eigenen Shop über OAuth 2.0, und die Partner-API deckt den Werbekatalog ab. Keine davon deckt den gesamten Marktplatz ab, sodass marktweite Preisdaten eine E-Commerce-Datenerfassung benötigen.

Wie erhalte ich eine AliExpress-Produkt-URL oder -ID?

Produkt-URLs folgen dem Muster /item/<item_id>.html, und die Entdeckung beginnt bei /w/wholesale-<keyword>.html. IDs hängen vom Host ab. Ein Produkt hat die ID 1005001398867186 auf .com und 3256801212552434 auf .us. Schlüsseln Sie jedes Produkt nach seiner endgültigen URL nach der regionalen Weiterleitung, damit es nicht unter 2 IDs erscheint.

Ist das Scraping von AliExpress-Produktdaten kostenlos?

Ja, im kleinen Maßstab. Bright Datas kostenlose Stufe umfasst 5.000 Anfragen pro Monat ohne Kreditkarte und deckt die Scraper API, Web Unlocker und die Browser API ab, sodass Sie sie zunächst mit Ihren eigenen URLs testen können. Playwright und curl_cffi sind Open Source. Im Produktionsmaßstab zahlen Sie hauptsächlich für IP-Adressen, da 2 Durchläufe mit je 60 signierten API-Aufrufen von einer IP-Adresse 7 bzw. 15 Mal Daten erhielten.

Was kostet eine AliExpress-Scraper-API?

Bright Datas AliExpress Scraper API wird pro geliefertem Datensatz berechnet, und Web Unlocker wird pro erfolgreicher Anfrage berechnet, sodass Sie nur für Ergebnisse zahlen. Die Browser API wird nach Traffic berechnet, sodass das Seitengewicht die Kosten vorhersagt. Eine Produktseite wog im Test etwa 3 MB. Aktuelle Preise finden Sie auf Bright Datas Preisseite.

Warum liefert mein AliExpress-Scraper leere Felder?

Weil das anfängliche HTML keine Preise oder Lagerbestände enthält. window.runParams ist ein leeres Objekt und <title> ist leer, sodass selektorbasierte Extraktoren nichts finden und keinen Fehler auslösen. Das JavaScript der Seite lädt die Felder später von mtop.aliexpress.pdp.pc.query nach. Führen Sie entweder das JavaScript aus oder rufen Sie diese API direkt auf.

Wie vermeide ich Blockierungen beim Scraping von AliExpress?

Senden Sie Anfragen über Bright Datas Scraper API oder Web Unlocker, die eingebaute Proxys und AliExpress-CAPTCHA-Lösung haben. Im Test entfernte weder ein neuer Cookie-Speicher noch eine 60-sekündige Wartezeit eine Blockierung von einer IP-Adresse. Blockierte Anfragen lieferten auch HTTP 200, prüfen Sie also den bxpunish-Header, nicht den Statuscode.

Warum ändern sich AliExpress-Preise?

Weil Aktionen befristet sind und je nach Land variieren. In einem Test über 6 Exit-Länder reichte der Rabatt eines Produkts von 52,5 % bis hinunter zu 4,1 % auf den Listenpreis, und die Länder unterschieden sich darin, ob Preise Steuern enthielten. Legen Sie für jede Preisreihe ein Exit-Land fest und speichern Sie es in der Zeile.

Gibt es einen AliExpress-MCP-Server?

Ja. Bright Datas MCP Server erlaubt es einem KI-Agenten, AliExpress-Produktseiten über dessen Tools scrape_as_markdown und scrape_batch abzurufen, die die Entsperrung übernehmen und Markdown liefern. In einem Testaufruf lieferte scrape_as_markdown Preis, Bewertung, Varianten und Kategoriepfad des Produkts. Die AliExpress-MCP-Seite erklärt die Einrichtung.

Bright Datas Browser API erfasst die SKU-Preiskarte von einer AliExpress-Produktseite, und Web Unlocker liefert den Kategorie-Breadcrumb aus dessen Fußbereich. Rezensionen haben ebenfalls einen eigenen Scraper, den AliExpress Reviews Scraper, dessen Datensätze Produkt-ID und URL enthalten.

Die eigene Antwort der Seite enthält die SKU-Preiskarte. Die mit capture_pdp protokollierten Erfassungen enthielten Preise für 141, 75, 20, 18, 15 und 6 SKUs. Für ein Produkt hatte die Preiskarte 6 unterschiedliche Preise, von 2,56 bis 10,96. Die Karte liegt im Modul PRICE, neben der vorausgewählten SKU und dem Feld region:

Chrome-DevTools-Response-Tab für eine pdp.pc.query-Anfrage, der region US, selectedSkuId 12000059478006652 und eine skuIdStrPriceInfoMap zeigt, deren erste drei Einträge 1er-Packs zu je 7,61 $, 7,58 $ und 7,71 $ mit je 1,09 $ Verkaufspreis sind, gefolgt von einem vierten Eintrag für ein 10er-Pack zu 57,34 $

Diese Erfassung stammt von einem Multipack-Listing. Die Seite wählt ein 1er-Pack zu 1,09 $ vor, und der vierte Eintrag ist ein 10er-Pack zu 57,34 $, sodass die Karte den eigenen Preis jeder Variante enthält.

Um den Preis jeder Variante zu erhalten, führen Sie capture_pdp über die Browser API aus, lesen Sie PRICE.skuIdStrPriceInfoMap und speichern Sie es mit item_id als Schlüssel. Lesen Sie die Karte aus der Region, deren Preise Sie benötigen, da sie auch regional variieren kann. Beim Leistungsschalter aus dem ersten Abschnitt hatte die Karte in einer US-Sitzung unterschiedliche Variantenpreise und in einer anderen Region einen einheitlichen Preis für alle 7 Varianten.

Web-Unlocker-Markdown enthält den Kategoriepfad. Die gerenderte Seite listet die Kategorien des Produkts als Breadcrumb im Fußbereich, und das GLOBAL_DATA.globalData des Gateways hat denselben Pfad in seinem Feld categoryPath, 13/5/141914. Der untenstehende Parser liest die Produktseite als Web-Unlocker-Markdown, das Format, das brightdata scrape standardmäßig liefert:

import re

CRUMB   = re.compile(r"^This product belongs to\s.*$", re.M)
CAT_URL = re.compile(r"/category/(\d+)/([a-z0-9-]+)\.html")

def categories_from_markdown(md):
    """Kategorie-IDs und URLs aus dem Fußbereich der Produktseite."""
    line = CRUMB.search(md)
    if not line:
        return []
    return [{"category_id": cid,
             "url": f"https://www.aliexpress.com/category/{cid}/{slug}.html"}
            for cid, slug in CAT_URL.findall(line.group(0))]

with open("page.md", encoding="utf-8") as fh:    # brightdata scrape  -o page.md
    print(categories_from_markdown(fh.read()))

Das \s am Ende des ersten Musters ist essenziell, da der Fußbereich U+00A0, ein geschütztes Leerzeichen, unmittelbar nach to setzt. Dasselbe Muster mit einem literalen Leerzeichen findet keine Übereinstimmung. Mit \s gibt der Parser den Kategoriepfad zurück:

[{'category_id': '13',     'url': '.../category/13/home-improvement.html'},
 {'category_id': '5',      'url': '.../category/5/electrical-equipments-supplies.html'},
 {'category_id': '141914', 'url': '.../category/141914/circuit-breakers.html'}]

Den Kategoriepfad zu erhalten, benötigt eine Web-Unlocker-Anfrage pro Produkt. Führen Sie den Parser für die Produkte aus, deren Taxonomie Sie benötigen, und speichern Sie das Ergebnis mit item_id als Schlüssel. Der Text des Fußbereichs kann sich ohne Vorankündigung ändern. Prüfen Sie daher zuerst das CRUMB-Muster, falls der Parser eine leere Liste zurückgibt.

Das Scraper Studio übernimmt eine individuelle Feldliste. Wenn Sie die benötigten Daten beschreiben, erstellt dessen KI einen startbereiten Scraper mit eingebauten Proxys und Entsperrung, und Sie können Ausgabefelder später hinzufügen oder ändern. Speziell für die Preisüberwachung sammelt die AliExpress Price Scraper API AliExpress-Preisdaten, damit Sie verfolgen können, wie sich Preise ändern.

Seiten- und Schema-Änderungen erkennen

Jeder bei diesem Ziel beobachtete Fehler war stillschweigend, überwachen Sie also die Seite selbst. Das Bootstrap-Skript der Seite enthält eine Build-Version, cosmos_prefetch_mtop version 20240605.195626.856, und wenn sich diese Version ändert, kann sich die Prefetch-Konfiguration mit ihr ändern. Ein Fingerabdruck erkennt diese Änderung direkt. Ohne ihn würde Ihr eigener Scraper sie nur als Null-Werte zeigen.

Die 2 untenstehenden Fingerabdrücke prüfen 3 Stufen (die HTML-Hülle, die gerenderte Seite und die gelieferte Zeile), und keiner hängt vom Parsen der Produktfelder ab:

import hashlib, re

def shell_fingerprint(html):
    """Aus einem ungerenderten GET. Erkennt eine Änderung des Bootstraps oder der Prefetch-Konfiguration."""
    view = re.search(r"viewName\s*=\s*'([^']+)'", html)
    api  = re.search(r"api:\s*'(mtop\.[^']+)'", html)
    ver  = re.search(r"cosmos_prefetch_mtop version ([\d.]+)", html)
    return {"viewName": view.group(1) if view else None,
            "prefetch_api": api.group(1) if api else None,
            "gop_version": ver.group(1) if ver else None}

def row_fingerprint(row):
    """Aus einer gelieferten Zeile. Bestätigt den von Ihrer Pipeline erwarteten Feldsatz."""
    keys = sorted(k for k in row if k not in ("input", "timestamp"))
    return {"fields_sha1": hashlib.sha1(",".join(keys).encode()).hexdigest()[:12]}

Bei echten Erfassungen lieferten beide Fingerabdrücke stabile Werte:

shell   unrendered GET : viewName=newDetail  api=mtop.aliexpress.pdp.pc.query  gop=20240605.195626.856
shell   rendered DOM   : viewName=newDetail  api=mtop.aliexpress.pdp.pc.query  gop=20240605.195626.856
row     1005012408061151 : fields_sha1=154f2f84da5f
row     1005001398867186 : fields_sha1=154f2f84da5f
row     1005011666876666 : fields_sha1=154f2f84da5f

Ein dritter Fingerabdruck der erfassten Nutzlast scheint nützlich, kann aber zu Fehlalarmen führen. Das Hashen der Modulmenge scheint dieselbe Idee zu sein, aber die Modulanzahl variierte mit dem Listing und dem Erfassungszeitpunkt, nicht nur mit einer neuen Bereitstellung. Die erfassten Nutzlasten hatten 28, 27 und 28 Module, und die PRICE-Schlüsselmenge unterschied sich zwischen 2 von ihnen.

Die Anzahl änderte sich auch innerhalb eines Produkts. Dieselbe Produkt-ID lieferte 27 Module und dann, Minuten später bei 2 Erfassungen, 26, sodass selbst eine produktbezogene Historie eher einen Schwellenwert als eine Gleichheitsprüfung benötigt. Basieren Sie Ihre Warnungen auf den Hüllen- und Zeilen-Fingerabdrücken, da deren Werte bei jeder Erfassung gleich blieben.

Wann Sie stattdessen den AliExpress-Datensatz kaufen sollten

Alle 3 Methoden starten mit bereits vorhandenen URLs. Wenn Ihre Frage den gesamten Markt betrifft, beginnen Sie mit dem gebrauchsfertigen Datensatz:

Bright-Data-Dataset-Marketplace-Seite für

Das Filterpanel erlaubt es Ihnen, Datensätze auszuwählen, bevor Sie dafür bezahlen.

Der AliExpress-Datensatz reduziert Auswahlaufwand und Sammelzeit. Sie filtern den Datensatz auf die benötigten Einträge, im Marketplace oder über die Filter Dataset API, und zahlen nur für Ihren gefilterten Snapshot. Diese Einträge existieren bereits, es gibt also keinen Sammeldurchlauf, auf den gewartet werden muss. Sie können ihn einmalig oder nach einem von Ihnen gewählten Aktualisierungsplan kaufen, und aktuelle Preise finden Sie auf der Preisseite für Datensätze.

Schätzen Sie die Liefergröße, bevor Sie bestellen. Einträge in der Datensatzprobe sind im Durchschnitt 12,75 KB als gelieferte JSON-Datei groß, planen Sie also mit etwa 1,3 GB pro 100.000 Einträgen. Der Datensatz wird auch im Parquet-Format geliefert, und dieselbe Probe war als Parquet fast 8-mal kleiner. Dieser Größenunterschied kann entscheiden, ob Sie die Datei direkt abfragen oder zuerst zwischenspeichern.

Verwenden Sie den Datensatz für marktweite Sortiments- und Abdeckungsfragen, und verwenden Sie die Scraper API für die konkreten Listings, die Sie verfolgen. Der Datensatz wird nach dem von Ihnen gewählten Plan aktualisiert, und eine Scraper-API-Sammlung liefert jedes Listing zum Zeitpunkt der Ausführung.

Fazit

Das Signierungsschema von AliExpress passt in eine Funktion, aber im Test blockierte das Gateway Aufrufe von einer IP-Adresse innerhalb des ersten Dutzends Anfragen, selbst mit korrekter Signatur. Da eine Blockierung einen Erfolgsstatuscode zurückgeben kann, basieren Sie jede Prüfung auf dem bxpunish-Header und auf einem Feld, das jedes Produkt hat, wie den Preis. Die robots.txt der Website verbietet den öffentlichen /item/-Pfad nicht, das ist also der Pfad, den Sie im großen Maßstab scrapen sollten.

Bright Datas AliExpress Scraper API liefert strukturierte Datensätze für diese Produktseiten, die Browser API erfasst den Preis jeder Variante, und der AliExpress-Datensatz eignet sich für marktweite Fragen. Starten Sie mit der kostenlosen Stufe, die 5.000 Anfragen pro Monat ohne Kreditkarte umfasst. Testen Sie sie mit 40 URLs aus Ihrem Katalog und prüfen Sie die Datensätze anhand der von Ihrer Pipeline benötigten Felder.

FAQ

Hat AliExpress eine API für Produktdaten?

Ja, für Verkäufer, Partner und genehmigte Dropshipper. Auf der AliExpress Open Platform autorisiert ein Verkäufer eine App für seinen eigenen Shop über OAuth 2.0, und die Partner-API deckt den Werbekatalog ab. Keine davon deckt den gesamten Marktplatz ab, sodass marktweite Preisdaten eine E-Commerce-Datenerfassung benötigen.

Wie erhalte ich eine AliExpress-Produkt-URL oder -ID?

Produkt-URLs folgen dem Muster /item/<item_id>.html, und die Entdeckung beginnt bei /w/wholesale-<keyword>.html. IDs hängen vom Host ab. Ein Produkt hat die ID 1005001398867186 auf .com und 3256801212552434 auf .us. Schlüsseln Sie jedes Produkt nach seiner endgültigen URL nach der regionalen Weiterleitung, damit es nicht unter 2 IDs erscheint.

Ist das Scraping von AliExpress-Produktdaten kostenlos?

Ja, im kleinen Maßstab. Bright Datas kostenlose Stufe umfasst 5.000 Anfragen pro Monat ohne Kreditkarte und deckt die Scraper API, Web Unlocker und die Browser API ab, sodass Sie sie zunächst mit Ihren eigenen URLs testen können. Playwright und curl_cffi sind Open Source. Im Produktionsmaßstab zahlen Sie hauptsächlich für IP-Adressen, da 2 Durchläufe mit je 60 signierten API-Aufrufen von einer IP-Adresse 7 bzw. 15 Mal Daten erhielten.

Was kostet eine AliExpress-Scraper-API?

Bright Datas AliExpress Scraper API wird pro geliefertem Datensatz berechnet, und Web Unlocker wird pro erfolgreicher Anfrage berechnet, sodass Sie nur für Ergebnisse zahlen. Die Browser API wird nach Traffic berechnet, sodass das Seitengewicht die Kosten vorhersagt. Eine Produktseite wog im Test etwa 3 MB. Aktuelle Preise finden Sie auf Bright Datas Preisseite.

Warum liefert mein AliExpress-Scraper leere Felder?

Weil das anfängliche HTML keine Preise oder Lagerbestände enthält. window.runParams ist ein leeres Objekt und <title> ist leer, sodass selektorbasierte Extraktoren nichts finden und keinen Fehler auslösen. Das JavaScript der Seite lädt die Felder später von mtop.aliexpress.pdp.pc.query nach. Führen Sie entweder das JavaScript aus oder rufen Sie diese API direkt auf.

Wie vermeide ich Blockierungen beim Scraping von AliExpress?

Senden Sie Anfragen über Bright Datas Scraper API oder Web Unlocker, die eingebaute Proxys und AliExpress-CAPTCHA-Lösung haben. Im Test entfernte weder ein neuer Cookie-Speicher noch eine 60-sekündige Wartezeit eine Blockierung von einer IP-Adresse. Blockierte Anfragen lieferten auch HTTP 200, prüfen Sie also den bxpunish-Header, nicht den Statuscode.

Warum ändern sich AliExpress-Preise?

Weil Aktionen befristet sind und je nach Land variieren. In einem Test über 6 Exit-Länder reichte der Rabatt eines Produkts von 52,5 % bis hinunter zu 4,1 % auf den Listenpreis, und die Länder unterschieden sich darin, ob Preise Steuern enthielten. Legen Sie für jede Preisreihe ein Exit-Land fest und speichern Sie es in der Zeile.

Gibt es einen AliExpress-MCP-Server?

Ja. Bright Datas MCP Server erlaubt es einem KI-Agenten, AliExpress-Produktseiten über dessen Tools scrape_as_markdown und scrape_batch abzurufen, die die Entsperrung übernehmen und Markdown liefern. In einem Testaufruf lieferte scrape_as_markdown Preis, Bewertung, Varianten und Kategoriepfad des Produkts. Die AliExpress-MCP-Seite erklärt die Einrichtung.

Die AliExpress Scraper API liefert strukturierte Daten. Sie senden Produkt-URLs und erhalten Datensätze mit bereits extrahierten Feldern, wie Titel, Listen- und Verkaufspreis, Verfügbarkeit, Spezifikationen, Verkäufer, Bewertung, Rezensionen und Bild-URLs. Die AliExpress Image Scraper API ist auf Bilddaten spezialisiert. Die Preisgestaltung der Scraper API erfolgt pro gelieferten Datensatz, sodass Sie nur für Ergebnisse zahlen.

ProduktPreiseinheitWas Sie erhaltenVerwenden Sie es, wenn
Browser APIGB TrafficEine Browser-Sitzung und die Netzwerkantworten der SeiteSie die eigenen API-Antworten der Seite benötigen, z. B. den Preis jeder Variante
Web UnlockerErfolgreiche AnfrageGerenderte HTML oder Markdown, die Sie parsenSie bereits einen Parser pflegen oder Seiten an ein LLM senden
Scraper APIGelieferter DatensatzStrukturierte ProduktdatensätzeSie Datensätze, keine Seiten, möchten

Einen eigenen Browser zu betreiben ist die vierte Option, also habe ich auch diese gemessen. Die 3 Stealth-Browser (Patchright, nodriver und Camoufox) sind Open Source und brauchten im Schnitt 14,1 bis 15,9 Sekunden pro Ladevorgang. Diese Zeit ist ein Minimum, da keiner der 24 Ladevorgänge die Produktdaten erreichte, und ein erfolgreicher Ladevorgang zusätzlich Zeit für das Parsen bräuchte.

Bei einer bereits blockierten IP-Adresse lieferten alle 3 Stealth-Browser den Kopf- und Fußbereich der Seite, aber keine Produktdaten. Jedes Bright-Data-Produkt verfügt über eingebaute Proxys, und ein selbst betriebener Browser kann Bright Datas AliExpress-Proxys nutzen.

Die Scraper API im großen Maßstab ausführen

Die Scraper API nimmt URLs an einem Endpunkt entgegen und liefert Datensätze an einem anderen. Ihre Kontrollpanel-Seite zeigt beide Scraper-Modi neben einer startbereiten Anfrage:

Konfigurationsbildschirm der Bright-Data-Scrapers-Library für den Endpunkt

Das linke Panel listet die 2 Endpunkte der Domain, Collect by URL und Discover by category URL. Die dataset_id im Codebeispiel rechts ist derselbe Wert, den das untenstehende Skript verwendet.

Der synchrone Modus liefert eine snapshot_id, wenn eine Sammlung lange dauert, und die Sammlung läuft im Hintergrund weiter. Lösen Sie für einen vollständigen Katalog eine asynchrone Sammlung in Abschnitten aus und speichern Sie nach jedem den Fortschritt, sodass der Durchlauf bei einem Absturz fortgesetzt wird und Sie nicht doppelt für dieselben URLs zahlen:

import json, os, time, requests

API = "https://api.brightdata.com/datasets/v3"
DATASET = "gd_mlj9v75u1w1jvaxvwp"          # AliExpress products
TOKEN = os.environ["BRIGHTDATA_API_KEY"]   # API-Schlüssel aus Ihren Kontoeinstellungen
CHUNK = 40                                 # größer lief pro Eingabe schneller
H = {"Authorization": f"Bearer {TOKEN}", "Content-Type": "application/json"}

def _await(snapshot, timeout=3600, poll=20):
    deadline = time.time() + timeout
    while time.time() < deadline:
        p = requests.get(f"{API}/progress/{snapshot}", headers=H, timeout=60).json()
        if p.get("status") in ("ready", "failed"):
            return p
        time.sleep(poll)
    raise TimeoutError(snapshot)

def _save(state, state_path):
    with open(state_path, "w") as fh:
        json.dump(state, fh)

def run(urls, state_path="run_state.json", out_path="rows.jsonl"):
    state = {"done": {}, "dead": []}
    if os.path.exists(state_path):
        with open(state_path) as fh:
            state = json.load(fh)

    for n in range(0, len(urls), CHUNK):
        key = str(n // CHUNK)
        done = state["done"].get(key, {})
        if done.get("records") is not None:     # fertig heißt heruntergeladen, nicht ausgelöst
            continue
        batch, t0 = urls[n:n + CHUNK], time.time()
        snapshot = done.get("snapshot")         # vor einem Absturz ausgelöst: diesen Snapshot wiederverwenden
        if not snapshot:
            r = requests.post(f"{API}/trigger?dataset_id={DATASET}&include_errors=true",
                              headers=H, json={"input": [{"url": u} for u in batch]},
                              timeout=120)
            r.raise_for_status()
            snapshot = r.json()["snapshot_id"]
            state["done"][key] = {"snapshot": snapshot}
            _save(state, state_path)            # das Auslösen VOR der Wartezeit speichern

        print(f"chunk {key}: collecting {len(batch)} URLs")
        progress = _await(snapshot)
        rows = requests.get(f"{API}/snapshot/{snapshot}?format=json",
                            headers=H, timeout=600).json()
        with open(out_path, "a") as fh:
            for row in rows:
                if row.get("error_code") == "dead_page":   # Listing bei AliExpress entfernt
                    state["dead"].append(row["input"]["url"])
                elif not row.get("error"):
                    fh.write(json.dumps(row) + "\n")
        state["done"][key].update(records=progress.get("records"), errors=progress.get("errors"))
        _save(state, state_path)
        print(f"chunk {key}: collected at {(time.time() - t0) / len(batch):.1f}s per input")

    return state

run(["https://www.aliexpress.com/item/1005001398867186.html"])   # Ihre vollständige URL-Liste übergeben

include_errors=true fügt den Fehlerbericht den Ergebnissen hinzu, sodass jede URL in Ihrer Liste einen Status hat.

Jede Zeile in rows.jsonl ist ein Produktdatensatz. Dieses Skript gibt einige Felder des ersten Datensatzes aus:

import json

with open("rows.jsonl") as fh:
    row = json.loads(fh.readline())
for key in ("item_id", "title", "brand", "price", "sale_price",
            "availability", "star_rating", "review_count"):
    print(f"{key:13s}", row[key])
print("variants     ", [o["option_name"] for o in row["variants"][0]["variant_options"]])

Die Ausgabe zeigt den Leistungsschalter aus dem ersten Abschnitt:

item_id       1005001398867186
title         TOMZN Main Switch Residual Current Circuit Breaker With Surge Protector RCBO MCB With Lightning Protection SPD
brand         TOMZN
price         $14.40
sale_price    $8.40
availability  in_stock
star_rating   4.7
review_count  80
variants      ['16A', '20A', '25A', '32A', '40A', '50A', '63A']

Der Listenpreis, die Bewertung 4,7 aus 80 Rezensionen und die 7 Nennstrom-Varianten stimmen mit der gerenderten Seite im ersten Abschnitt überein. Der Verkaufspreis stammt aus einer befristeten Aktion, weshalb er zwischen Erfassungen variiert.

Halten Sie jeden Abschnitt voll. In diesen Durchläufen war ein Trigger mit 40 URLs pro URL 2,8-mal schneller als einer mit 20 URLs. Füllen Sie den letzten Abschnitt mit URLs aus Ihrem nächsten Durchlauf auf, damit er in voller Größe läuft. Lassen Sie Bright Data bei Hunderttausenden URLs jeden Snapshot liefern an Ihren Cloud-Speicher oder an einen Webhook, sodass Ergebnisse ohne Polling eintreffen.

Das erneute Ausführen von run() mit derselben Statusdatei dauerte 0,08 Sekunden, löste keine Trigger aus und schrieb keine doppelten Zeilen. Das Skript behandelt auch einen Abschnitt, der ausgelöst wurde, bevor der Prozess während der Wartezeit abstürzte. Es überspringt einen Abschnitt nur, wenn dessen Datensätze bereits heruntergeladen wurden. Andernfalls verwendet es den gespeicherten Snapshot erneut, sodass ein Absturz während der Wartezeit keinen bereits gesammelten Snapshot verliert.

Messen Sie, wie oft sich Preise ändern, und passen Sie Ihren Sammelplan an diese Rate an. In einer Prüfung habe ich 12 Produkte zweimal erfasst, im Abstand von 25 Minuten, und keiner der Preise änderte sich. Diese Stichprobe kann keine Preisänderungsrate zeigen, verwenden Sie also die Methode, nicht das Ergebnis. Zwei Snapshots Ihrer eigenen Produkte, im von Ihnen angedachten Intervall erfasst, beantworten die Frage für Ihren Katalog.

Discovery, der Discover-by-Category-Endpunkt des Scrapers, listet Produkte aus einer Start-URL auf. Mit der Großhandels-Suchseite /w/wholesale-ergonomic-chair.html als Startpunkt lieferte eine Anfrage mit type=discover_new&discover_by=category_url beim ersten Durchlauf Produkt-URLs. Verwenden Sie /w/wholesale-<keyword>.html als Muster für Ihre Start-URL, begrenzen Sie jeden Discovery-Durchlauf mit limit_per_input während der Kalibrierung und übergeben Sie die zurückgegebenen URLs direkt an den Sammeldurchlauf.

Wenn Sie Produkt-IDs aus anderen Quellen sammeln, wie den Produkt-Sitemaps oder den SEO-Links einer Produktseite, zeigt eine einzelne GET-Anfrage ohne Rendering, ob jede ID noch eine Produktseite hat. Produktseiten lieferten 77,2 bis 77,4 KB mit einem gefüllten og:title, während 3 aus diesen SEO-Links gesammelte IDs 75,26 KB mit jedem leeren og:-Feld lieferten. Dieser Unterschied von 2 KB ist in der Rohantwort sichtbar, verwerfen Sie also IDs mit leeren og:-Feldern, bevor Sie eine Sammlung in die Warteschlange stellen.

2 Prüfungen, die Preisdaten vergleichbar halten

Die Daten benötigen dieselbe Validierung wie die HTTP-Antworten. Jede dieser 2 Prüfungen ist günstig hinzuzufügen und hilft Ihnen, nicht vergleichbare Preise zu erkennen, bevor sie ein Dashboard erreichen.

Der Rabatt variierte mit dem Exit-Land, nicht nur mit der Währung. Ich rief eine Produkt-ID über Web Unlocker im Markdown-Format aus 6 Exit-Ländern ab, und jedes Land lieferte eine andere Aktion:

Exit-LandWährungVerkaufspreisListenpreisRabatt
USAUSD$6,84$14,4052,5 %
Vereinigtes KönigreichGBP£9,83£11,1611,9 %
DeutschlandEUR11,69€13,29€12,0 %
BrasilienBRLR$62,25R$68,308,9 %
AustralienAUDAU$18,59AU$19,424,3 %
KanadaCADC$19,86C$20,704,1 %

Selbst die Prozentwerte sind nicht direkt vergleichbar, und jede Seite zeigt warum. Die US-Kaufbox beschriftet ihren Preis mit Ends :, sodass die US-Zeile ein zeitlich begrenztes Angebot ist, das zu einem Zeitpunkt erfasst wurde. Die UK-Seite sagt Price includes VAT, während die US-Seite Tax excluded sagt. Die deutsche Seite nennt den niedrigsten 30-Tage-Preis vor dem Rabatt, die EU-Referenzpreisregel, die dazu neigt, deutsche Rabatte kleiner erscheinen zu lassen.

Wegen dieser 3 Unterschiede legen Sie für jede Preisreihe ein Exit-Land fest, speichern es in der Zeile und vergleichen eine Reihe nur mit sich selbst. Web Unlocker legt es mit dem Parameter country fest, und die Browser API legt es mit einem -country-<code>-Suffix am Zonen-Benutzernamen fest. Wenn Sie die Aktionen selbst statt einer Preis-Pipeline benötigen, überwacht der AliExpress Promotions Tracker Konkurrenzaktionen für Sie.

Das britische Pfund-Zeichen ist das in voller Breite. Der UK-Shop verwendet £, U+FFE1 FULLWIDTH POUND SIGN, sodass ein mit £ (U+00A3) geschriebener Währungs-Regex nichts findet. Die deutschen und brasilianischen Shops verwenden im Preisfeld ein Komma als Dezimaltrennzeichen. Parsen Sie die Währung aus der angeforderten Shop-Einstellung und halten Sie das Zahlenparsing vom Symbol getrennt.

Der Preis jeder Variante und der vollständige Kategoriepfad

Bright Datas Browser API erfasst die SKU-Preiskarte von einer AliExpress-Produktseite, und Web Unlocker liefert den Kategorie-Breadcrumb aus dessen Fußbereich. Rezensionen haben ebenfalls einen eigenen Scraper, den AliExpress Reviews Scraper, dessen Datensätze Produkt-ID und URL enthalten.

Die eigene Antwort der Seite enthält die SKU-Preiskarte. Die mit capture_pdp protokollierten Erfassungen enthielten Preise für 141, 75, 20, 18, 15 und 6 SKUs. Für ein Produkt hatte die Preiskarte 6 unterschiedliche Preise, von 2,56 bis 10,96. Die Karte liegt im Modul PRICE, neben der vorausgewählten SKU und dem Feld region:

Chrome-DevTools-Response-Tab für eine pdp.pc.query-Anfrage, der region US, selectedSkuId 12000059478006652 und eine skuIdStrPriceInfoMap zeigt, deren erste drei Einträge 1er-Packs zu je 7,61 $, 7,58 $ und 7,71 $ mit je 1,09 $ Verkaufspreis sind, gefolgt von einem vierten Eintrag für ein 10er-Pack zu 57,34 $

Diese Erfassung stammt von einem Multipack-Listing. Die Seite wählt ein 1er-Pack zu 1,09 $ vor, und der vierte Eintrag ist ein 10er-Pack zu 57,34 $, sodass die Karte den eigenen Preis jeder Variante enthält.

Um den Preis jeder Variante zu erhalten, führen Sie capture_pdp über die Browser API aus, lesen Sie PRICE.skuIdStrPriceInfoMap und speichern Sie es mit item_id als Schlüssel. Lesen Sie die Karte aus der Region, deren Preise Sie benötigen, da sie auch regional variieren kann. Beim Leistungsschalter aus dem ersten Abschnitt hatte die Karte in einer US-Sitzung unterschiedliche Variantenpreise und in einer anderen Region einen einheitlichen Preis für alle 7 Varianten.

Web-Unlocker-Markdown enthält den Kategoriepfad. Die gerenderte Seite listet die Kategorien des Produkts als Breadcrumb im Fußbereich, und das GLOBAL_DATA.globalData des Gateways hat denselben Pfad in seinem Feld categoryPath, 13/5/141914. Der untenstehende Parser liest die Produktseite als Web-Unlocker-Markdown, das Format, das brightdata scrape standardmäßig liefert:

import re

CRUMB   = re.compile(r"^This product belongs to\s.*$", re.M)
CAT_URL = re.compile(r"/category/(\d+)/([a-z0-9-]+)\.html")

def categories_from_markdown(md):
    """Kategorie-IDs und URLs aus dem Fußbereich der Produktseite."""
    line = CRUMB.search(md)
    if not line:
        return []
    return [{"category_id": cid,
             "url": f"https://www.aliexpress.com/category/{cid}/{slug}.html"}
            for cid, slug in CAT_URL.findall(line.group(0))]

with open("page.md", encoding="utf-8") as fh:    # brightdata scrape  -o page.md
    print(categories_from_markdown(fh.read()))

Das \s am Ende des ersten Musters ist essenziell, da der Fußbereich U+00A0, ein geschütztes Leerzeichen, unmittelbar nach to setzt. Dasselbe Muster mit einem literalen Leerzeichen findet keine Übereinstimmung. Mit \s gibt der Parser den Kategoriepfad zurück:

[{'category_id': '13',     'url': '.../category/13/home-improvement.html'},
 {'category_id': '5',      'url': '.../category/5/electrical-equipments-supplies.html'},
 {'category_id': '141914', 'url': '.../category/141914/circuit-breakers.html'}]

Den Kategoriepfad zu erhalten, benötigt eine Web-Unlocker-Anfrage pro Produkt. Führen Sie den Parser für die Produkte aus, deren Taxonomie Sie benötigen, und speichern Sie das Ergebnis mit item_id als Schlüssel. Der Text des Fußbereichs kann sich ohne Vorankündigung ändern. Prüfen Sie daher zuerst das CRUMB-Muster, falls der Parser eine leere Liste zurückgibt.

Das Scraper Studio übernimmt eine individuelle Feldliste. Wenn Sie die benötigten Daten beschreiben, erstellt dessen KI einen startbereiten Scraper mit eingebauten Proxys und Entsperrung, und Sie können Ausgabefelder später hinzufügen oder ändern. Speziell für die Preisüberwachung sammelt die AliExpress Price Scraper API AliExpress-Preisdaten, damit Sie verfolgen können, wie sich Preise ändern.

Seiten- und Schema-Änderungen erkennen

Jeder bei diesem Ziel beobachtete Fehler war stillschweigend, überwachen Sie also die Seite selbst. Das Bootstrap-Skript der Seite enthält eine Build-Version, cosmos_prefetch_mtop version 20240605.195626.856, und wenn sich diese Version ändert, kann sich die Prefetch-Konfiguration mit ihr ändern. Ein Fingerabdruck erkennt diese Änderung direkt. Ohne ihn würde Ihr eigener Scraper sie nur als Null-Werte zeigen.

Die 2 untenstehenden Fingerabdrücke prüfen 3 Stufen (die HTML-Hülle, die gerenderte Seite und die gelieferte Zeile), und keiner hängt vom Parsen der Produktfelder ab:

import hashlib, re

def shell_fingerprint(html):
    """Aus einem ungerenderten GET. Erkennt eine Änderung des Bootstraps oder der Prefetch-Konfiguration."""
    view = re.search(r"viewName\s*=\s*'([^']+)'", html)
    api  = re.search(r"api:\s*'(mtop\.[^']+)'", html)
    ver  = re.search(r"cosmos_prefetch_mtop version ([\d.]+)", html)
    return {"viewName": view.group(1) if view else None,
            "prefetch_api": api.group(1) if api else None,
            "gop_version": ver.group(1) if ver else None}

def row_fingerprint(row):
    """Aus einer gelieferten Zeile. Bestätigt den von Ihrer Pipeline erwarteten Feldsatz."""
    keys = sorted(k for k in row if k not in ("input", "timestamp"))
    return {"fields_sha1": hashlib.sha1(",".join(keys).encode()).hexdigest()[:12]}

Bei echten Erfassungen lieferten beide Fingerabdrücke stabile Werte:

shell   unrendered GET : viewName=newDetail  api=mtop.aliexpress.pdp.pc.query  gop=20240605.195626.856
shell   rendered DOM   : viewName=newDetail  api=mtop.aliexpress.pdp.pc.query  gop=20240605.195626.856
row     1005012408061151 : fields_sha1=154f2f84da5f
row     1005001398867186 : fields_sha1=154f2f84da5f
row     1005011666876666 : fields_sha1=154f2f84da5f

Ein dritter Fingerabdruck der erfassten Nutzlast scheint nützlich, kann aber zu Fehlalarmen führen. Das Hashen der Modulmenge scheint dieselbe Idee zu sein, aber die Modulanzahl variierte mit dem Listing und dem Erfassungszeitpunkt, nicht nur mit einer neuen Bereitstellung. Die erfassten Nutzlasten hatten 28, 27 und 28 Module, und die PRICE-Schlüsselmenge unterschied sich zwischen 2 von ihnen.

Die Anzahl änderte sich auch innerhalb eines Produkts. Dieselbe Produkt-ID lieferte 27 Module und dann, Minuten später bei 2 Erfassungen, 26, sodass selbst eine produktbezogene Historie eher einen Schwellenwert als eine Gleichheitsprüfung benötigt. Basieren Sie Ihre Warnungen auf den Hüllen- und Zeilen-Fingerabdrücken, da deren Werte bei jeder Erfassung gleich blieben.

Wann Sie stattdessen den AliExpress-Datensatz kaufen sollten

Alle 3 Methoden starten mit bereits vorhandenen URLs. Wenn Ihre Frage den gesamten Markt betrifft, beginnen Sie mit dem gebrauchsfertigen Datensatz:

Bright-Data-Dataset-Marketplace-Seite für

Das Filterpanel erlaubt es Ihnen, Datensätze auszuwählen, bevor Sie dafür bezahlen.

Der AliExpress-Datensatz reduziert Auswahlaufwand und Sammelzeit. Sie filtern den Datensatz auf die benötigten Einträge, im Marketplace oder über die Filter Dataset API, und zahlen nur für Ihren gefilterten Snapshot. Diese Einträge existieren bereits, es gibt also keinen Sammeldurchlauf, auf den gewartet werden muss. Sie können ihn einmalig oder nach einem von Ihnen gewählten Aktualisierungsplan kaufen, und aktuelle Preise finden Sie auf der Preisseite für Datensätze.

Schätzen Sie die Liefergröße, bevor Sie bestellen. Einträge in der Datensatzprobe sind im Durchschnitt 12,75 KB als gelieferte JSON-Datei groß, planen Sie also mit etwa 1,3 GB pro 100.000 Einträgen. Der Datensatz wird auch im Parquet-Format geliefert, und dieselbe Probe war als Parquet fast 8-mal kleiner. Dieser Größenunterschied kann entscheiden, ob Sie die Datei direkt abfragen oder zuerst zwischenspeichern.

Verwenden Sie den Datensatz für marktweite Sortiments- und Abdeckungsfragen, und verwenden Sie die Scraper API für die konkreten Listings, die Sie verfolgen. Der Datensatz wird nach dem von Ihnen gewählten Plan aktualisiert, und eine Scraper-API-Sammlung liefert jedes Listing zum Zeitpunkt der Ausführung.

Fazit

Das Signierungsschema von AliExpress passt in eine Funktion, aber im Test blockierte das Gateway Aufrufe von einer IP-Adresse innerhalb des ersten Dutzends Anfragen, selbst mit korrekter Signatur. Da eine Blockierung einen Erfolgsstatuscode zurückgeben kann, basieren Sie jede Prüfung auf dem bxpunish-Header und auf einem Feld, das jedes Produkt hat, wie den Preis. Die robots.txt der Website verbietet den öffentlichen /item/-Pfad nicht, das ist also der Pfad, den Sie im großen Maßstab scrapen sollten.

Bright Datas AliExpress Scraper API liefert strukturierte Datensätze für diese Produktseiten, die Browser API erfasst den Preis jeder Variante, und der AliExpress-Datensatz eignet sich für marktweite Fragen. Starten Sie mit der kostenlosen Stufe, die 5.000 Anfragen pro Monat ohne Kreditkarte umfasst. Testen Sie sie mit 40 URLs aus Ihrem Katalog und prüfen Sie die Datensätze anhand der von Ihrer Pipeline benötigten Felder.

FAQ

Hat AliExpress eine API für Produktdaten?

Ja, für Verkäufer, Partner und genehmigte Dropshipper. Auf der AliExpress Open Platform autorisiert ein Verkäufer eine App für seinen eigenen Shop über OAuth 2.0, und die Partner-API deckt den Werbekatalog ab. Keine davon deckt den gesamten Marktplatz ab, sodass marktweite Preisdaten eine E-Commerce-Datenerfassung benötigen.

Wie erhalte ich eine AliExpress-Produkt-URL oder -ID?

Produkt-URLs folgen dem Muster /item/<item_id>.html, und die Entdeckung beginnt bei /w/wholesale-<keyword>.html. IDs hängen vom Host ab. Ein Produkt hat die ID 1005001398867186 auf .com und 3256801212552434 auf .us. Schlüsseln Sie jedes Produkt nach seiner endgültigen URL nach der regionalen Weiterleitung, damit es nicht unter 2 IDs erscheint.

Ist das Scraping von AliExpress-Produktdaten kostenlos?

Ja, im kleinen Maßstab. Bright Datas kostenlose Stufe umfasst 5.000 Anfragen pro Monat ohne Kreditkarte und deckt die Scraper API, Web Unlocker und die Browser API ab, sodass Sie sie zunächst mit Ihren eigenen URLs testen können. Playwright und curl_cffi sind Open Source. Im Produktionsmaßstab zahlen Sie hauptsächlich für IP-Adressen, da 2 Durchläufe mit je 60 signierten API-Aufrufen von einer IP-Adresse 7 bzw. 15 Mal Daten erhielten.

Was kostet eine AliExpress-Scraper-API?

Bright Datas AliExpress Scraper API wird pro geliefertem Datensatz berechnet, und Web Unlocker wird pro erfolgreicher Anfrage berechnet, sodass Sie nur für Ergebnisse zahlen. Die Browser API wird nach Traffic berechnet, sodass das Seitengewicht die Kosten vorhersagt. Eine Produktseite wog im Test etwa 3 MB. Aktuelle Preise finden Sie auf Bright Datas Preisseite.

Warum liefert mein AliExpress-Scraper leere Felder?

Weil das anfängliche HTML keine Preise oder Lagerbestände enthält. window.runParams ist ein leeres Objekt und <title> ist leer, sodass selektorbasierte Extraktoren nichts finden und keinen Fehler auslösen. Das JavaScript der Seite lädt die Felder später von mtop.aliexpress.pdp.pc.query nach. Führen Sie entweder das JavaScript aus oder rufen Sie diese API direkt auf.

Wie vermeide ich Blockierungen beim Scraping von AliExpress?

Senden Sie Anfragen über Bright Datas Scraper API oder Web Unlocker, die eingebaute Proxys und AliExpress-CAPTCHA-Lösung haben. Im Test entfernte weder ein neuer Cookie-Speicher noch eine 60-sekündige Wartezeit eine Blockierung von einer IP-Adresse. Blockierte Anfragen lieferten auch HTTP 200, prüfen Sie also den bxpunish-Header, nicht den Statuscode.

Warum ändern sich AliExpress-Preise?

Weil Aktionen befristet sind und je nach Land variieren. In einem Test über 6 Exit-Länder reichte der Rabatt eines Produkts von 52,5 % bis hinunter zu 4,1 % auf den Listenpreis, und die Länder unterschieden sich darin, ob Preise Steuern enthielten. Legen Sie für jede Preisreihe ein Exit-Land fest und speichern Sie es in der Zeile.

Gibt es einen AliExpress-MCP-Server?

Ja. Bright Datas MCP Server erlaubt es einem KI-Agenten, AliExpress-Produktseiten über dessen Tools scrape_as_markdown und scrape_batch abzurufen, die die Entsperrung übernehmen und Markdown liefern. In einem Testaufruf lieferte scrape_as_markdown Preis, Bewertung, Varianten und Kategoriepfad des Produkts. Die AliExpress-MCP-Seite erklärt die Einrichtung.

Die AliExpress Scraper API liefert strukturierte Daten. Sie senden Produkt-URLs und erhalten Datensätze mit bereits extrahierten Feldern, wie Titel, Listen- und Verkaufspreis, Verfügbarkeit, Spezifikationen, Verkäufer, Bewertung, Rezensionen und Bild-URLs. Die AliExpress Image Scraper API ist auf Bilddaten spezialisiert. Die Preisgestaltung der Scraper API erfolgt pro gelieferten Datensatz, sodass Sie nur für Ergebnisse zahlen.

ProduktPreiseinheitWas Sie erhaltenVerwenden Sie es, wenn
Browser APIGB TrafficEine Browser-Sitzung und die Netzwerkantworten der SeiteSie die eigenen API-Antworten der Seite benötigen, z. B. den Preis jeder Variante
Web UnlockerErfolgreiche AnfrageGerenderte HTML oder Markdown, die Sie parsenSie bereits einen Parser pflegen oder Seiten an ein LLM senden
Scraper APIGelieferter DatensatzStrukturierte ProduktdatensätzeSie Datensätze, keine Seiten, möchten

Einen eigenen Browser zu betreiben ist die vierte Option, also habe ich auch diese gemessen. Die 3 Stealth-Browser (Patchright, nodriver und Camoufox) sind Open Source und brauchten im Schnitt 14,1 bis 15,9 Sekunden pro Ladevorgang. Diese Zeit ist ein Minimum, da keiner der 24 Ladevorgänge die Produktdaten erreichte, und ein erfolgreicher Ladevorgang zusätzlich Zeit für das Parsen bräuchte.

Bei einer bereits blockierten IP-Adresse lieferten alle 3 Stealth-Browser den Kopf- und Fußbereich der Seite, aber keine Produktdaten. Jedes Bright-Data-Produkt verfügt über eingebaute Proxys, und ein selbst betriebener Browser kann Bright Datas AliExpress-Proxys nutzen.

Die Scraper API im großen Maßstab ausführen

Die Scraper API nimmt URLs an einem Endpunkt entgegen und liefert Datensätze an einem anderen. Ihre Kontrollpanel-Seite zeigt beide Scraper-Modi neben einer startbereiten Anfrage:

Konfigurationsbildschirm der Bright-Data-Scrapers-Library für den Endpunkt

Das linke Panel listet die 2 Endpunkte der Domain, Collect by URL und Discover by category URL. Die dataset_id im Codebeispiel rechts ist derselbe Wert, den das untenstehende Skript verwendet.

Der synchrone Modus liefert eine snapshot_id, wenn eine Sammlung lange dauert, und die Sammlung läuft im Hintergrund weiter. Lösen Sie für einen vollständigen Katalog eine asynchrone Sammlung in Abschnitten aus und speichern Sie nach jedem den Fortschritt, sodass der Durchlauf bei einem Absturz fortgesetzt wird und Sie nicht doppelt für dieselben URLs zahlen:

import json, os, time, requests

API = "https://api.brightdata.com/datasets/v3"
DATASET = "gd_mlj9v75u1w1jvaxvwp"          # AliExpress products
TOKEN = os.environ["BRIGHTDATA_API_KEY"]   # API-Schlüssel aus Ihren Kontoeinstellungen
CHUNK = 40                                 # größer lief pro Eingabe schneller
H = {"Authorization": f"Bearer {TOKEN}", "Content-Type": "application/json"}

def _await(snapshot, timeout=3600, poll=20):
    deadline = time.time() + timeout
    while time.time() < deadline:
        p = requests.get(f"{API}/progress/{snapshot}", headers=H, timeout=60).json()
        if p.get("status") in ("ready", "failed"):
            return p
        time.sleep(poll)
    raise TimeoutError(snapshot)

def _save(state, state_path):
    with open(state_path, "w") as fh:
        json.dump(state, fh)

def run(urls, state_path="run_state.json", out_path="rows.jsonl"):
    state = {"done": {}, "dead": []}
    if os.path.exists(state_path):
        with open(state_path) as fh:
            state = json.load(fh)

    for n in range(0, len(urls), CHUNK):
        key = str(n // CHUNK)
        done = state["done"].get(key, {})
        if done.get("records") is not None:     # fertig heißt heruntergeladen, nicht ausgelöst
            continue
        batch, t0 = urls[n:n + CHUNK], time.time()
        snapshot = done.get("snapshot")         # vor einem Absturz ausgelöst: diesen Snapshot wiederverwenden
        if not snapshot:
            r = requests.post(f"{API}/trigger?dataset_id={DATASET}&include_errors=true",
                              headers=H, json={"input": [{"url": u} for u in batch]},
                              timeout=120)
            r.raise_for_status()
            snapshot = r.json()["snapshot_id"]
            state["done"][key] = {"snapshot": snapshot}
            _save(state, state_path)            # das Auslösen VOR der Wartezeit speichern

        print(f"chunk {key}: collecting {len(batch)} URLs")
        progress = _await(snapshot)
        rows = requests.get(f"{API}/snapshot/{snapshot}?format=json",
                            headers=H, timeout=600).json()
        with open(out_path, "a") as fh:
            for row in rows:
                if row.get("error_code") == "dead_page":   # Listing bei AliExpress entfernt
                    state["dead"].append(row["input"]["url"])
                elif not row.get("error"):
                    fh.write(json.dumps(row) + "\n")
        state["done"][key].update(records=progress.get("records"), errors=progress.get("errors"))
        _save(state, state_path)
        print(f"chunk {key}: collected at {(time.time() - t0) / len(batch):.1f}s per input")

    return state

run(["https://www.aliexpress.com/item/1005001398867186.html"])   # Ihre vollständige URL-Liste übergeben

include_errors=true fügt den Fehlerbericht den Ergebnissen hinzu, sodass jede URL in Ihrer Liste einen Status hat.

Jede Zeile in rows.jsonl ist ein Produktdatensatz. Dieses Skript gibt einige Felder des ersten Datensatzes aus:

import json

with open("rows.jsonl") as fh:
    row = json.loads(fh.readline())
for key in ("item_id", "title", "brand", "price", "sale_price",
            "availability", "star_rating", "review_count"):
    print(f"{key:13s}", row[key])
print("variants     ", [o["option_name"] for o in row["variants"][0]["variant_options"]])

Die Ausgabe zeigt den Leistungsschalter aus dem ersten Abschnitt:

item_id       1005001398867186
title         TOMZN Main Switch Residual Current Circuit Breaker With Surge Protector RCBO MCB With Lightning Protection SPD
brand         TOMZN
price         $14.40
sale_price    $8.40
availability  in_stock
star_rating   4.7
review_count  80
variants      ['16A', '20A', '25A', '32A', '40A', '50A', '63A']

Der Listenpreis, die Bewertung 4,7 aus 80 Rezensionen und die 7 Nennstrom-Varianten stimmen mit der gerenderten Seite im ersten Abschnitt überein. Der Verkaufspreis stammt aus einer befristeten Aktion, weshalb er zwischen Erfassungen variiert.

Halten Sie jeden Abschnitt voll. In diesen Durchläufen war ein Trigger mit 40 URLs pro URL 2,8-mal schneller als einer mit 20 URLs. Füllen Sie den letzten Abschnitt mit URLs aus Ihrem nächsten Durchlauf auf, damit er in voller Größe läuft. Lassen Sie Bright Data bei Hunderttausenden URLs jeden Snapshot liefern an Ihren Cloud-Speicher oder an einen Webhook, sodass Ergebnisse ohne Polling eintreffen.

Das erneute Ausführen von run() mit derselben Statusdatei dauerte 0,08 Sekunden, löste keine Trigger aus und schrieb keine doppelten Zeilen. Das Skript behandelt auch einen Abschnitt, der ausgelöst wurde, bevor der Prozess während der Wartezeit abstürzte. Es überspringt einen Abschnitt nur, wenn dessen Datensätze bereits heruntergeladen wurden. Andernfalls verwendet es den gespeicherten Snapshot erneut, sodass ein Absturz während der Wartezeit keinen bereits gesammelten Snapshot verliert.

Messen Sie, wie oft sich Preise ändern, und passen Sie Ihren Sammelplan an diese Rate an. In einer Prüfung habe ich 12 Produkte zweimal erfasst, im Abstand von 25 Minuten, und keiner der Preise änderte sich. Diese Stichprobe kann keine Preisänderungsrate zeigen, verwenden Sie also die Methode, nicht das Ergebnis. Zwei Snapshots Ihrer eigenen Produkte, im von Ihnen angedachten Intervall erfasst, beantworten die Frage für Ihren Katalog.

Discovery, der Discover-by-Category-Endpunkt des Scrapers, listet Produkte aus einer Start-URL auf. Mit der Großhandels-Suchseite /w/wholesale-ergonomic-chair.html als Startpunkt lieferte eine Anfrage mit type=discover_new&discover_by=category_url beim ersten Durchlauf Produkt-URLs. Verwenden Sie /w/wholesale-<keyword>.html als Muster für Ihre Start-URL, begrenzen Sie jeden Discovery-Durchlauf mit limit_per_input während der Kalibrierung und übergeben Sie die zurückgegebenen URLs direkt an den Sammeldurchlauf.

Wenn Sie Produkt-IDs aus anderen Quellen sammeln, wie den Produkt-Sitemaps oder den SEO-Links einer Produktseite, zeigt eine einzelne GET-Anfrage ohne Rendering, ob jede ID noch eine Produktseite hat. Produktseiten lieferten 77,2 bis 77,4 KB mit einem gefüllten og:title, während 3 aus diesen SEO-Links gesammelte IDs 75,26 KB mit jedem leeren og:-Feld lieferten. Dieser Unterschied von 2 KB ist in der Rohantwort sichtbar, verwerfen Sie also IDs mit leeren og:-Feldern, bevor Sie eine Sammlung in die Warteschlange stellen.

2 Prüfungen, die Preisdaten vergleichbar halten

Die Daten benötigen dieselbe Validierung wie die HTTP-Antworten. Jede dieser 2 Prüfungen ist günstig hinzuzufügen und hilft Ihnen, nicht vergleichbare Preise zu erkennen, bevor sie ein Dashboard erreichen.

Der Rabatt variierte mit dem Exit-Land, nicht nur mit der Währung. Ich rief eine Produkt-ID über Web Unlocker im Markdown-Format aus 6 Exit-Ländern ab, und jedes Land lieferte eine andere Aktion:

Exit-LandWährungVerkaufspreisListenpreisRabatt
USAUSD$6,84$14,4052,5 %
Vereinigtes KönigreichGBP£9,83£11,1611,9 %
DeutschlandEUR11,69€13,29€12,0 %
BrasilienBRLR$62,25R$68,308,9 %
AustralienAUDAU$18,59AU$19,424,3 %
KanadaCADC$19,86C$20,704,1 %

Selbst die Prozentwerte sind nicht direkt vergleichbar, und jede Seite zeigt warum. Die US-Kaufbox beschriftet ihren Preis mit Ends :, sodass die US-Zeile ein zeitlich begrenztes Angebot ist, das zu einem Zeitpunkt erfasst wurde. Die UK-Seite sagt Price includes VAT, während die US-Seite Tax excluded sagt. Die deutsche Seite nennt den niedrigsten 30-Tage-Preis vor dem Rabatt, die EU-Referenzpreisregel, die dazu neigt, deutsche Rabatte kleiner erscheinen zu lassen.

Wegen dieser 3 Unterschiede legen Sie für jede Preisreihe ein Exit-Land fest, speichern es in der Zeile und vergleichen eine Reihe nur mit sich selbst. Web Unlocker legt es mit dem Parameter country fest, und die Browser API legt es mit einem -country-<code>-Suffix am Zonen-Benutzernamen fest. Wenn Sie die Aktionen selbst statt einer Preis-Pipeline benötigen, überwacht der AliExpress Promotions Tracker Konkurrenzaktionen für Sie.

Das britische Pfund-Zeichen ist das in voller Breite. Der UK-Shop verwendet £, U+FFE1 FULLWIDTH POUND SIGN, sodass ein mit £ (U+00A3) geschriebener Währungs-Regex nichts findet. Die deutschen und brasilianischen Shops verwenden im Preisfeld ein Komma als Dezimaltrennzeichen. Parsen Sie die Währung aus der angeforderten Shop-Einstellung und halten Sie das Zahlenparsing vom Symbol getrennt.

Der Preis jeder Variante und der vollständige Kategoriepfad

Bright Datas Browser API erfasst die SKU-Preiskarte von einer AliExpress-Produktseite, und Web Unlocker liefert den Kategorie-Breadcrumb aus dessen Fußbereich. Rezensionen haben ebenfalls einen eigenen Scraper, den AliExpress Reviews Scraper, dessen Datensätze Produkt-ID und URL enthalten.

Die eigene Antwort der Seite enthält die SKU-Preiskarte. Die mit capture_pdp protokollierten Erfassungen enthielten Preise für 141, 75, 20, 18, 15 und 6 SKUs. Für ein Produkt hatte die Preiskarte 6 unterschiedliche Preise, von 2,56 bis 10,96. Die Karte liegt im Modul PRICE, neben der vorausgewählten SKU und dem Feld region:

Chrome-DevTools-Response-Tab für eine pdp.pc.query-Anfrage, der region US, selectedSkuId 12000059478006652 und eine skuIdStrPriceInfoMap zeigt, deren erste drei Einträge 1er-Packs zu je 7,61 $, 7,58 $ und 7,71 $ mit je 1,09 $ Verkaufspreis sind, gefolgt von einem vierten Eintrag für ein 10er-Pack zu 57,34 $

Diese Erfassung stammt von einem Multipack-Listing. Die Seite wählt ein 1er-Pack zu 1,09 $ vor, und der vierte Eintrag ist ein 10er-Pack zu 57,34 $, sodass die Karte den eigenen Preis jeder Variante enthält.

Um den Preis jeder Variante zu erhalten, führen Sie capture_pdp über die Browser API aus, lesen Sie PRICE.skuIdStrPriceInfoMap und speichern Sie es mit item_id als Schlüssel. Lesen Sie die Karte aus der Region, deren Preise Sie benötigen, da sie auch regional variieren kann. Beim Leistungsschalter aus dem ersten Abschnitt hatte die Karte in einer US-Sitzung unterschiedliche Variantenpreise und in einer anderen Region einen einheitlichen Preis für alle 7 Varianten.

Web-Unlocker-Markdown enthält den Kategoriepfad. Die gerenderte Seite listet die Kategorien des Produkts als Breadcrumb im Fußbereich, und das GLOBAL_DATA.globalData des Gateways hat denselben Pfad in seinem Feld categoryPath, 13/5/141914. Der untenstehende Parser liest die Produktseite als Web-Unlocker-Markdown, das Format, das brightdata scrape standardmäßig liefert:

import re

CRUMB   = re.compile(r"^This product belongs to\s.*$", re.M)
CAT_URL = re.compile(r"/category/(\d+)/([a-z0-9-]+)\.html")

def categories_from_markdown(md):
    """Kategorie-IDs und URLs aus dem Fußbereich der Produktseite."""
    line = CRUMB.search(md)
    if not line:
        return []
    return [{"category_id": cid,
             "url": f"https://www.aliexpress.com/category/{cid}/{slug}.html"}
            for cid, slug in CAT_URL.findall(line.group(0))]

with open("page.md", encoding="utf-8") as fh:    # brightdata scrape  -o page.md
    print(categories_from_markdown(fh.read()))

Das \s am Ende des ersten Musters ist essenziell, da der Fußbereich U+00A0, ein geschütztes Leerzeichen, unmittelbar nach to setzt. Dasselbe Muster mit einem literalen Leerzeichen findet keine Übereinstimmung. Mit \s gibt der Parser den Kategoriepfad zurück:

[{'category_id': '13',     'url': '.../category/13/home-improvement.html'},
 {'category_id': '5',      'url': '.../category/5/electrical-equipments-supplies.html'},
 {'category_id': '141914', 'url': '.../category/141914/circuit-breakers.html'}]

Den Kategoriepfad zu erhalten, benötigt eine Web-Unlocker-Anfrage pro Produkt. Führen Sie den Parser für die Produkte aus, deren Taxonomie Sie benötigen, und speichern Sie das Ergebnis mit item_id als Schlüssel. Der Text des Fußbereichs kann sich ohne Vorankündigung ändern. Prüfen Sie daher zuerst das CRUMB-Muster, falls der Parser eine leere Liste zurückgibt.

Das Scraper Studio übernimmt eine individuelle Feldliste. Wenn Sie die benötigten Daten beschreiben, erstellt dessen KI einen startbereiten Scraper mit eingebauten Proxys und Entsperrung, und Sie können Ausgabefelder später hinzufügen oder ändern. Speziell für die Preisüberwachung sammelt die AliExpress Price Scraper API AliExpress-Preisdaten, damit Sie verfolgen können, wie sich Preise ändern.

Seiten- und Schema-Änderungen erkennen

Jeder bei diesem Ziel beobachtete Fehler war stillschweigend, überwachen Sie also die Seite selbst. Das Bootstrap-Skript der Seite enthält eine Build-Version, cosmos_prefetch_mtop version 20240605.195626.856, und wenn sich diese Version ändert, kann sich die Prefetch-Konfiguration mit ihr ändern. Ein Fingerabdruck erkennt diese Änderung direkt. Ohne ihn würde Ihr eigener Scraper sie nur als Null-Werte zeigen.

Die 2 untenstehenden Fingerabdrücke prüfen 3 Stufen (die HTML-Hülle, die gerenderte Seite und die gelieferte Zeile), und keiner hängt vom Parsen der Produktfelder ab:

import hashlib, re

def shell_fingerprint(html):
    """Aus einem ungerenderten GET. Erkennt eine Änderung des Bootstraps oder der Prefetch-Konfiguration."""
    view = re.search(r"viewName\s*=\s*'([^']+)'", html)
    api  = re.search(r"api:\s*'(mtop\.[^']+)'", html)
    ver  = re.search(r"cosmos_prefetch_mtop version ([\d.]+)", html)
    return {"viewName": view.group(1) if view else None,
            "prefetch_api": api.group(1) if api else None,
            "gop_version": ver.group(1) if ver else None}

def row_fingerprint(row):
    """Aus einer gelieferten Zeile. Bestätigt den von Ihrer Pipeline erwarteten Feldsatz."""
    keys = sorted(k for k in row if k not in ("input", "timestamp"))
    return {"fields_sha1": hashlib.sha1(",".join(keys).encode()).hexdigest()[:12]}

Bei echten Erfassungen lieferten beide Fingerabdrücke stabile Werte:

shell   unrendered GET : viewName=newDetail  api=mtop.aliexpress.pdp.pc.query  gop=20240605.195626.856
shell   rendered DOM   : viewName=newDetail  api=mtop.aliexpress.pdp.pc.query  gop=20240605.195626.856
row     1005012408061151 : fields_sha1=154f2f84da5f
row     1005001398867186 : fields_sha1=154f2f84da5f
row     1005011666876666 : fields_sha1=154f2f84da5f

Ein dritter Fingerabdruck der erfassten Nutzlast scheint nützlich, kann aber zu Fehlalarmen führen. Das Hashen der Modulmenge scheint dieselbe Idee zu sein, aber die Modulanzahl variierte mit dem Listing und dem Erfassungszeitpunkt, nicht nur mit einer neuen Bereitstellung. Die erfassten Nutzlasten hatten 28, 27 und 28 Module, und die PRICE-Schlüsselmenge unterschied sich zwischen 2 von ihnen.

Die Anzahl änderte sich auch innerhalb eines Produkts. Dieselbe Produkt-ID lieferte 27 Module und dann, Minuten später bei 2 Erfassungen, 26, sodass selbst eine produktbezogene Historie eher einen Schwellenwert als eine Gleichheitsprüfung benötigt. Basieren Sie Ihre Warnungen auf den Hüllen- und Zeilen-Fingerabdrücken, da deren Werte bei jeder Erfassung gleich blieben.

Wann Sie stattdessen den AliExpress-Datensatz kaufen sollten

Alle 3 Methoden starten mit bereits vorhandenen URLs. Wenn Ihre Frage den gesamten Markt betrifft, beginnen Sie mit dem gebrauchsfertigen Datensatz:

Bright-Data-Dataset-Marketplace-Seite für

Das Filterpanel erlaubt es Ihnen, Datensätze auszuwählen, bevor Sie dafür bezahlen.

Der AliExpress-Datensatz reduziert Auswahlaufwand und Sammelzeit. Sie filtern den Datensatz auf die benötigten Einträge, im Marketplace oder über die Filter Dataset API, und zahlen nur für Ihren gefilterten Snapshot. Diese Einträge existieren bereits, es gibt also keinen Sammeldurchlauf, auf den gewartet werden muss. Sie können ihn einmalig oder nach einem von Ihnen gewählten Aktualisierungsplan kaufen, und aktuelle Preise finden Sie auf der Preisseite für Datensätze.

Schätzen Sie die Liefergröße, bevor Sie bestellen. Einträge in der Datensatzprobe sind im Durchschnitt 12,75 KB als gelieferte JSON-Datei groß, planen Sie also mit etwa 1,3 GB pro 100.000 Einträgen. Der Datensatz wird auch im Parquet-Format geliefert, und dieselbe Probe war als Parquet fast 8-mal kleiner. Dieser Größenunterschied kann entscheiden, ob Sie die Datei direkt abfragen oder zuerst zwischenspeichern.

Verwenden Sie den Datensatz für marktweite Sortiments- und Abdeckungsfragen, und verwenden Sie die Scraper API für die konkreten Listings, die Sie verfolgen. Der Datensatz wird nach dem von Ihnen gewählten Plan aktualisiert, und eine Scraper-API-Sammlung liefert jedes Listing zum Zeitpunkt der Ausführung.

Fazit

Das Signierungsschema von AliExpress passt in eine Funktion, aber im Test blockierte das Gateway Aufrufe von einer IP-Adresse innerhalb des ersten Dutzends Anfragen, selbst mit korrekter Signatur. Da eine Blockierung einen Erfolgsstatuscode zurückgeben kann, basieren Sie jede Prüfung auf dem bxpunish-Header und auf einem Feld, das jedes Produkt hat, wie den Preis. Die robots.txt der Website verbietet den öffentlichen /item/-Pfad nicht, das ist also der Pfad, den Sie im großen Maßstab scrapen sollten.

Bright Datas AliExpress Scraper API liefert strukturierte Datensätze für diese Produktseiten, die Browser API erfasst den Preis jeder Variante, und der AliExpress-Datensatz eignet sich für marktweite Fragen. Starten Sie mit der kostenlosen Stufe, die 5.000 Anfragen pro Monat ohne Kreditkarte umfasst. Testen Sie sie mit 40 URLs aus Ihrem Katalog und prüfen Sie die Datensätze anhand der von Ihrer Pipeline benötigten Felder.

FAQ

Hat AliExpress eine API für Produktdaten?

Ja, für Verkäufer, Partner und genehmigte Dropshipper. Auf der AliExpress Open Platform autorisiert ein Verkäufer eine App für seinen eigenen Shop über OAuth 2.0, und die Partner-API deckt den Werbekatalog ab. Keine davon deckt den gesamten Marktplatz ab, sodass marktweite Preisdaten eine E-Commerce-Datenerfassung benötigen.

Wie erhalte ich eine AliExpress-Produkt-URL oder -ID?

Produkt-URLs folgen dem Muster /item/<item_id>.html, und die Entdeckung beginnt bei /w/wholesale-<keyword>.html. IDs hängen vom Host ab. Ein Produkt hat die ID 1005001398867186 auf .com und 3256801212552434 auf .us. Schlüsseln Sie jedes Produkt nach seiner endgültigen URL nach der regionalen Weiterleitung, damit es nicht unter 2 IDs erscheint.

Ist das Scraping von AliExpress-Produktdaten kostenlos?

Ja, im kleinen Maßstab. Bright Datas kostenlose Stufe umfasst 5.000 Anfragen pro Monat ohne Kreditkarte und deckt die Scraper API, Web Unlocker und die Browser API ab, sodass Sie sie zunächst mit Ihren eigenen URLs testen können. Playwright und curl_cffi sind Open Source. Im Produktionsmaßstab zahlen Sie hauptsächlich für IP-Adressen, da 2 Durchläufe mit je 60 signierten API-Aufrufen von einer IP-Adresse 7 bzw. 15 Mal Daten erhielten.

Was kostet eine AliExpress-Scraper-API?

Bright Datas AliExpress Scraper API wird pro geliefertem Datensatz berechnet, und Web Unlocker wird pro erfolgreicher Anfrage berechnet, sodass Sie nur für Ergebnisse zahlen. Die Browser API wird nach Traffic berechnet, sodass das Seitengewicht die Kosten vorhersagt. Eine Produktseite wog im Test etwa 3 MB. Aktuelle Preise finden Sie auf Bright Datas Preisseite.

Warum liefert mein AliExpress-Scraper leere Felder?

Weil das anfängliche HTML keine Preise oder Lagerbestände enthält. window.runParams ist ein leeres Objekt und <title> ist leer, sodass selektorbasierte Extraktoren nichts finden und keinen Fehler auslösen. Das JavaScript der Seite lädt die Felder später von mtop.aliexpress.pdp.pc.query nach. Führen Sie entweder das JavaScript aus oder rufen Sie diese API direkt auf.

Wie vermeide ich Blockierungen beim Scraping von AliExpress?

Senden Sie Anfragen über Bright Datas Scraper API oder Web Unlocker, die eingebaute Proxys und AliExpress-CAPTCHA-Lösung haben. Im Test entfernte weder ein neuer Cookie-Speicher noch eine 60-sekündige Wartezeit eine Blockierung von einer IP-Adresse. Blockierte Anfragen lieferten auch HTTP 200, prüfen Sie also den bxpunish-Header, nicht den Statuscode.

Warum ändern sich AliExpress-Preise?

Weil Aktionen befristet sind und je nach Land variieren. In einem Test über 6 Exit-Länder reichte der Rabatt eines Produkts von 52,5 % bis hinunter zu 4,1 % auf den Listenpreis, und die Länder unterschieden sich darin, ob Preise Steuern enthielten. Legen Sie für jede Preisreihe ein Exit-Land fest und speichern Sie es in der Zeile.

Gibt es einen AliExpress-MCP-Server?

Ja. Bright Datas MCP Server erlaubt es einem KI-Agenten, AliExpress-Produktseiten über dessen Tools scrape_as_markdown und scrape_batch abzurufen, die die Entsperrung übernehmen und Markdown liefern. In einem Testaufruf lieferte scrape_as_markdown Preis, Bewertung, Varianten und Kategoriepfad des Produkts. Die AliExpress-MCP-Seite erklärt die Einrichtung.