Amazon im großen Stil scrapen, ohne blockiert zu werden
Amazon ist das Ziel, das jeder will und das fast niemand im großen Stil sauber scrapt. Ein paar Produktseiten von Hand abrufen, und es sieht einfach aus. Richte einen echten Job auf ein paar Tausend ASINs, und alles bricht zusammen: CAPTCHAs, “Sorry, something went wrong”-Seiten, IP-Sperren, Preise, die sich stillschweigend ändern, je nachdem, aus welchem Land deine Anfrage kam, und ein Seitenlayout, das je nach Verkäufer, Buy Box und ob es sich um eine Variante handelt, unterschiedlich aussieht.
Dieser Leitfaden erklärt, warum Amazon schwierig ist, was tatsächlich eine Blockade auslöst und wie du einen Scraper baust, der weiterläuft, wenn du von zehn Seiten auf Hunderttausende skalierst. Am Ende stehen echte Zahlen aus einem Stresstest, den wir gegen Amazon über ScrapeUnblocker gefahren haben.
Warum Amazon schwer zu scrapen ist
Amazon verlässt sich nicht auf einen einzelnen Anti-Bot-Anbieter. Es betreibt seinen eigenen Detection-Stack, und das aggressiv. Ein paar Dinge machen es schwieriger als die durchschnittliche E-Commerce-Seite:
- Raten- und Muster-Erkennung. Ruf Produktseiten zu schnell oder in einem zu regelmäßigen Rhythmus von derselben Adresse ab, und du wirst gedrosselt oder bekommst ein CAPTCHA. Der Schwellenwert wird nicht veröffentlicht und verschiebt sich.
- IP-Reputation. Anfragen aus Rechenzentrums-IP-Bereichen werden sofort mit Misstrauen behandelt. Eine saubere Residential-Adresse verhält sich völlig anders als ein AWS- oder Hetzner-Block.
- Browser-Fingerprinting. Amazon prüft TLS-Fingerprints, Header-Reihenfolge, Cookies und JavaScript-Ausführung. Ein nackter HTTP-Client, der kein JavaScript ausführt, ist leicht zu erkennen.
- Geo-abhängige Inhalte. Preis, Verfügbarkeit, Währung, Lieferschätzungen und sogar welcher Verkäufer die Buy Box gewinnt, ändern sich mit dem Standort des Käufers. Scrape
amazon.comvon einer europäischen IP, und die Zahlen sind nicht die, die ein US-Käufer sieht. - Layout-Variation. Dieselbe Seitenvorlage wird für ein Buch, ein variantenreiches Mode-Listing und einen Marketplace-Artikel eines Drittanbieters unterschiedlich gerendert. Ein Selektor, der bei einer ASIN funktioniert, gibt bei der nächsten stillschweigend nichts zurück.
Jedes Einzelne davon ist beherrschbar. Die Kombination macht einen naiven Scraper aus, der im Test zu funktionieren scheint und dann in der Produktion zusammenbricht.
Was dich tatsächlich blockiert
Wenn Leute sagen “Amazon hat mich blockiert”, ist es fast immer eines davon:
- Rechenzentrums-IPs. Das mit Abstand stärkste Signal. Wenn deine Anfragen von einem Cloud-Anbieter kommen, bist du markiert, bevor die Seite überhaupt geladen ist.
- Kein echter Browser. Rohes HTML ohne JavaScript-Ausführung abzurufen, löst Fingerprint-Checks aus und hinterlässt dir halb gerenderte Seiten.
- Zu viel Nebenläufigkeit von einer Identität. Fünfzig parallele Anfragen über eine IP ist nicht, wie ein Mensch einkauft.
- Wiederverwendete Sessions und Cookies. Denselben Cookie-Bestand über Tausende von Anfragen mitzuschleppen, baut ein Profil auf, das trivial bot-förmig ist.
- Geo ignorieren. Zwischen Ländern auf derselben Session hin- und herzuspringen oder einen Markt aus der falschen Region zu scrapen, erzeugt inkonsistente Daten und zusätzliche Prüfung.
Die Lösung für all das ist dieselbe Idee: Lass jede Anfrage wie ein eigenständiger, plausibler Mensch auf einer Residential-Verbindung aussehen, der einen echten Browser ausführt, von einem Standort, der zum gescrapten Markt passt.
Einen Scraper bauen, der im großen Stil durchhält
Du kannst das selbst zusammenbauen. Es braucht vier bewegliche Teile, und jeder einzelne ist eine Wartungsverpflichtung:
- Residential-Proxies mit Rotation. Ein großer Pool an Residential-IPs, rotiert pro Anfrage oder pro kurzer Session, damit keine einzelne Adresse eine verdächtige Last trägt. Rechenzentrums-Proxies reichen bei Amazon nicht.
- Ein echter Browser mit randomisiertem Fingerprint. Headless Chrome oder Ähnliches, mit JavaScript-Ausführung, realistischen Headern und einem Fingerprint, der sich zwischen den Anfragen ändert. Das ist es, was Challenges besteht und die vollständige Seite rendert.
- Geo-Targeting. Hefte jede Anfrage an das Land, dessen Markt du willst, damit Preise und Verfügbarkeit die sind, die echte Käufer in diesem Markt sehen.
- Retries und Backoff. Amazon liefert gelegentlich selbst legitimem Traffic einen sanften Fehler. Ein Scraper, der mit einer frischen IP und kurzem Backoff erneut versucht, verwandelt eine Fehlerrate von 0,2 % in einen sauberen Datensatz.
Der Haken ist, dass sich alle vier mit der Zeit ändern. Amazon aktualisiert seine Abwehr, Proxy-Pools brennen aus, Fingerprints veralten, und am Ende wartest du Scraping-Infrastruktur, statt die Daten zu nutzen. Genau diese Arbeit übernimmt ScrapeUnblocker: Du schickst eine URL, und es wählt die günstigste Route, die für diese Domain tatsächlich funktioniert, einschließlich eines dedizierten Amazon-Pfads mit bereits abgestimmten Proxies, Browser und Rendering.
Was aus einer Amazon-Produktseite zu extrahieren ist
Sobald du die Seite zuverlässig laden kannst, sind die lohnenswerten Felder meist:
- ASIN - der stabile Produktidentifikator, oft der sauberste Schlüssel zum Verknüpfen.
- Titel und Marke.
- Preis und Währung - denk daran, dass diese geo-abhängig sind.
- Buy Box - der Preis und Verkäufer, die die Buy Box gewinnen, können sich von den anderen Angeboten des Listings unterscheiden.
- Verfügbarkeit und Lieferschätzung.
- Bewertung und Anzahl der Rezensionen.
- Bilder und Varianten - Größen, Farben und ihre pro-Variante-ASINs.
- Verkäufer - Erstanbieter (verkauft von Amazon) gegenüber Marketplace-Drittanbieter.
Anstatt CSS- oder XPath-Selektoren für jede Layout-Variante zu schreiben und zu warten, kannst du geparste Ausgabe anfordern und den Dienst die strukturierten Felder für dich extrahieren lassen. Mit ScrapeUnblocker gibt parsed_data=true ein JSON-Payload zurück, das aus Schema.org-Markup, eingebetteten Seitendaten und KI-generierten Regeln aufgebaut ist, sodass du die brüchige Selektor-Schicht komplett überspringst.
Beispiel: eine Produktseite, sauberes JSON
Hier ist die gesamte Anfrage. Richte sie auf eine Produkt-URL, ziele auf den Markt, der dich interessiert, und fordere geparste Daten an:
curl -X POST "https://api.scrapeunblocker.com/getPageSource?url=https%3A%2F%2Fwww.amazon.com%2Fdp%2FB09B8V1LZ3&parsed_data=true&proxy_country=US" \
-H "X-ScrapeUnblocker-Key: YOUR_API_KEY"
Dasselbe in Python, verdrahtet für einen Batch von ASINs:
import requests
API_KEY = "YOUR_API_KEY"
ENDPOINT = "https://api.scrapeunblocker.com/getPageSource"
def scrape_product(asin, country="US"):
url = f"https://www.amazon.com/dp/{asin}"
resp = requests.post(
ENDPOINT,
params={"url": url, "parsed_data": "true", "proxy_country": country},
headers={"X-ScrapeUnblocker-Key": API_KEY},
timeout=120,
)
resp.raise_for_status()
return resp.json()["data"] # { page_type, source, data }
for asin in ["B09B8V1LZ3", "B0BSHF7WHW", "B08N5WRWNW"]:
product = scrape_product(asin)
print(asin, product["data"])
Keine Proxy-Liste, kein Browser zum Babysitten, keine Fingerprint-Rotation zu warten. Der Parameter proxy_country nimmt einen zweistelligen ISO-Code entgegen und deckt über 150 Länder ab, sodass amazon.de aus Deutschland oder amazon.co.uk aus Großbritannien zu scrapen eine Änderung in einem einzigen Feld ist.
Hält es im großen Stil durch? Die Zahlen
Über Zuverlässigkeit zu reden ist billig, hier also ein echter Test. Wir haben einen Stresstest gegen Amazon über ScrapeUnblocker gefahren: 2.000 Anfragen, zuerst bei Nebenläufigkeit 10 und dann bei Nebenläufigkeit 30, Produktseiten Schlag auf Schlag gescrapt.
- 99,8 % Erfolgsrate, gleichbleibend über beide Nebenläufigkeitsstufen. Der Sprung von 10 auf 30 parallele Anfragen hat sie nicht verschlechtert.
- Kein Proxy-Burn. Der Erfolg blieb von der ersten bis zur letzten Anfrage stabil, ohne Drift im Verlauf des Laufs. Der Pool degradierte unter Last nicht.
- Die Handvoll Fehler waren deterministisch - dieselben spezifischen ASINs, die wiederholbar scheiterten, keine zufälligen Blockaden oder einschleichenden CAPTCHAs. Das ist die Signatur einer Seiten-Eigenart bei diesen Artikeln, nicht eines Anti-Bot-Systems, das den Scraper einholt.
Dieser letzte Punkt zählt mehr als die Schlagzeilenzahl. Ein Scraper, der langsam erkannt wird, zeigt im Verlauf steigende, zufällige Fehler. Ein Scraper, dessen einzige Fehler jedes Mal dieselben paar Produkte sind, wird überhaupt nicht blockiert. Er trifft einfach auf Edge-Case-Listings, die du mit einem Retry oder einem Sonderfall behandeln kannst.
Häufige Stolperfallen
- Märkte in einem Datensatz mischen. Entscheide das Land pro Job und bleib dabei, sonst vergleichst du US-Preise mit UK-Preisen, ohne es zu merken.
- Dem ersten Preis vertrauen, den du siehst. Buy Box, Gutscheine und Sparabo können die Zahl allesamt verschieben. Erfasse die Buy Box explizit.
- Nebenläufigkeit hochdrehen, um Zeit zu sparen. Mehr Parallelität gegen eine Identität ist der schnellste Weg, markiert zu werden. Skaliere, indem du eigenständige Identitäten hinzufügst, nicht indem du von einer aus härter hämmerst.
- Veraltete Caches scrapen. Wenn du aggressiv cachst, veralten Preise und Bestand bei Amazon schnell. Passe deine Aktualisierungsfrequenz daran an, wie volatil die Daten sind.
Ein Hinweis zum verantwortungsvollen Vorgehen
Scrape öffentliche Produktdaten, keine persönlichen Informationen. Respektiere die Nutzungsbedingungen der Seite, halte deine Anfragerate vernünftig und versuche nicht, irgendetwas hinter einem Login abzurufen. Preis- und Katalogdaten auf öffentlichen Produktseiten sind ohnehin das, was die meisten legitimen Anwendungsfälle brauchen - Wettbewerbsbeobachtung, Repricing, Marktforschung und das Füttern von Modellen - und nichts davon erfordert das Anfassen privater Daten.
Die Kurzfassung
Amazon ist schwierig, weil es IP-Reputation, Fingerprinting, geo-abhängige Inhalte und Layout-Variation übereinanderstapelt. Es im großen Stil zu schlagen bedeutet Residential-Proxies mit Rotation, einen echten Browser, Geo-Targeting und sinnvolle Retries - und dann all das aktuell zu halten, während Amazon sich ändert. Du kannst das bauen und warten, oder du kannst eine URL auf einen Dienst richten, der es bereits abgestimmt hat, und sauberes HTML oder geparstes JSON zurückbekommen. So oder so ist das Ziel im großen Stil sehr gut scrapebar: 99,8 % über 2.000 Anfragen, stabil unter Last, ist kein Zufall. Es ist das, was passiert, wenn jede Anfrage wie ein echter Käufer aussieht.
ScrapeUnblocker kostenlos testen
Über 95 % Erfolgsquote · ab 0,55 € pro 1.000 Aufrufe · 500 kostenlose Anfragen bei der Registrierung.