Wie man Amazon-IP-Sperren beim Scraping vermeidet

Verstehen Sie das IP-Bandsystem von Amazon und lernen Sie bewährte Strategien, um die Erkennung zu vermeiden. Abdeckungen Wohn-Proxy-Konfiguration, Anfrage randomization, Geo-targeting und Wiederherstellung Verfahren.

Wie man Amazon-IP-Sperren beim Scraping vermeidet

Das IP Ban System von Amazon verstehen

Amazon betreibt eine der anspruchsvollsten Anti-Bot-Systeme im Internet. Wenn Ihre IP-Adressen verboten werden, verlieren Sie Zugriff auf Produktdaten, die Ihre Preise, Forschung und wettbewerbsfähige Intelligenz Operationen. Wie Amazon IPs erkennt und verbietet, ist der erste Schritt, um es zu verhindern.

Amazon blockiert nicht einfach einzelne IPs – es baut Verhaltensprofile. Ein einzelnes verdächtiges IP kann weiche Blöcke (CAPTCHAs) auslösen, während anhaltende Verstöße zu harten Blöcken führen (vollständige Zugriffsverweigerung). Das System verfolgt Muster in IP-Bereichen, so dass ein IP verboten kann die Kontrolle auf benachbarte Adressen erhöhen. Für ein umfassendes Verständnis der Erkennungsmethoden siehe unsere Anleitung zu wie Anti-Bot-Systeme Proxis erkennen.

Wie Amazon automatisierten Traffic erkennt

Amazons Erkennung funktioniert auf mehreren Schichten gleichzeitig.

Anfrage-Level-Detection

Anfrage-Level-Detection
SignalWas Amazon überprüftRisiko
TLS FingerprintTLS Handshake entspricht bekannten Bot-Bibliotheken (Python-Anfragen, Curl)hoch
Header OrderHTTP-Header in Nicht-Browser-Bestellung gesendetMittel
Vermisste HeaderAbwesenheit von Akzept-Sprache, Akzept-Encoding, etc.hoch
Benutzer-AgentVeraltete, ungültige oder bekannte Benutzer-Agent-Stringshoch
Umgang mit Cookieskeine Annahme oder Rückgabe von Session-CookiesMittel

Verhaltensdetektion

Verhaltensdetektion
MusterWarenbezeichnungRisiko
Feste IntervalleAnfragen, die in genauen Abständen ankommen (jeweils 5.0 Sekunden)hoch
Sequentielle RaupenASINs in alphabetischer Reihenfolge besuchenhoch
Kein NavigationspfadSpringen direkt auf Produktseiten ohne SurfenMittel
Hohes AnforderungsvolumenHunderte von Anfragen pro Minute von einem IPKritische
Keine JavaScript AusführungSeiten geladen ohne JavaScript auszuführenMittel

IP-Level-Erkennung

Amazon unterhält Datenbanken von Datacenter-IP-Bereichen und bekannten Proxy-Anbietern. Datacenter IPs stehen der sofortigen erhöhten Kontrolle unabhängig vom Verhalten gegenüber. Wohngebiete beginnen mit höherem Vertrauen, weil sie Pools mit echten Amazon-Shoppern teilen.

Arten von Amazon-Blöcken

Das Verständnis der verschiedenen Blocktypen hilft Ihnen, entsprechend zu reagieren.

Weiche Blöcke (CAPTCHA)

Die häufigste Antwort. Amazon dient einer CAPTCHA Seite anstelle von Produktdaten. Dies ist eine Warnung – weiter von der gleichen IP und Sie werden eskalieren zu einem harten Block. Wenn Sie eine CAPTCHA erhalten, sofort abschalten und in eine neue IP wechseln.

Hard Blocks (503/403 Fehler)

Vollständige Denial des Zugriffs, typischerweise Rückgabe von HTTP 503 oder 403 Statuscodes. Harte Blöcke können Stunden bis Tage für eine bestimmte IP dauern. Sobald hart blockiert, ist diese IP für Amazon effektiv unbrauchbar, bis der Block abläuft.

Inhaltsverzeichnis

Amazon bedient manchmal verschiedene Inhalte zu verdächtigen Bots — falsche Preise, fehlende Bewertungen oder unvollständige Produktdaten. Dies ist schwieriger zu erkennen, weil Sie eine 200 Antwort erhalten. Validieren Sie Ihre abgekratzten Daten gegen bekannte Werte, um diese zu erfassen.

Key Takeaway: CAPTCHAs sind Warnsignale, nicht nur Hindernisse. Behandeln Sie jede CAPTCHA als Indikator, dass Ihr aktueller Ansatz angepasst werden muss.

Präventionsstrategien

1. Benutzen Sie Wohngebiete

Dies ist die effektvollste Veränderung, die Sie machen können. Wohn-Proxies verwenden IP-Adressen, die echten Internet-Abonnenten zugeordnet sind, so dass Ihre Anfragen von echten Käufern nicht zugänglich sind. ProxyHats Wohnfläche umfasst 195+ Länder mit Millionen von IPs.

# ProxyHat residential proxy with geo-targeting
http://USERNAME-country-US:PASSWORD@gate.proxyhat.com:8080
# For Amazon.de
http://USERNAME-country-DE:PASSWORD@gate.proxyhat.com:8080
# For Amazon.co.uk
http://USERNAME-country-GB:PASSWORD@gate.proxyhat.com:8080

2. Implementieren Smart Rotation

Senden Sie niemals mehr als 5-10 Anfragen von einem einzigen IP an Amazon. ProxyHat's Gateway rotiert automatisch IPs pro Anfrage standardmäßig, aber Sie sollten auch Anwendungsebenensteuerungen implementieren.

import requests
import random
import time
PROXY_BASE = "http://USERNAME:PASSWORD@gate.proxyhat.com:8080"
def make_request(url, max_retries=3):
    """Make a request with automatic retry on failure."""
    for attempt in range(max_retries):
        # Each request gets a fresh IP from the rotating proxy
        proxies = {"http": PROXY_BASE, "https": PROXY_BASE}
        headers = {
            "User-Agent": random.choice(USER_AGENTS),
            "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
            "Accept-Language": "en-US,en;q=0.9",
            "Accept-Encoding": "gzip, deflate, br",
        }
        try:
            response = requests.get(url, headers=headers, proxies=proxies, timeout=30)
            # Check for CAPTCHA
            if "captcha" in response.text.lower() or response.status_code == 503:
                print(f"CAPTCHA/block detected on attempt {attempt + 1}")
                time.sleep(random.uniform(10, 30))  # Longer backoff
                continue
            if response.status_code == 200:
                return response
        except requests.RequestException:
            time.sleep(random.uniform(5, 15))
    return None

3. Randomize Anforderung Muster

Jeder Aspekt Ihres Anfrage-Musters sollte Zufall enthalten, um eine statistische Erfassung zu vermeiden.

import random
import time
def random_delay(min_sec=2, max_sec=7):
    """Add human-like random delay."""
    delay = random.uniform(min_sec, max_sec)
    # Occasionally add a longer pause (simulates reading a page)
    if random.random() < 0.1:  # 10% chance
        delay += random.uniform(10, 30)
    time.sleep(delay)
def shuffle_targets(urls):
    """Randomize the order of URLs to avoid sequential patterns."""
    shuffled = urls.copy()
    random.shuffle(shuffled)
    return shuffled
def get_random_user_agent():
    """Return a realistic, current User-Agent string."""
    agents = [
        "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36",
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36",
        "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:125.0) Gecko/20100101 Firefox/125.0",
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 Safari/605.1.15",
        "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36",
    ]
    return random.choice(agents)

4. Match Geo-Location zum Marktplatz

Der Zugriff auf amazon.com aus einem deutschen IP oder amazon.de aus einem japanischen IP ist ein starkes Signal der automatisierten Aktivität. Passen Sie immer Ihren Proxy-Standort an den Zielmarkt.

4. Match Geo-Location zum Marktplatz
MarktplatzProxy LandProxyHat Konfiguration
Amazon.comVereinigte StaatenUSERNAME-country-US
Amazon.deVereinigtes KönigreichUSERNAME-country-GB
Amazon.deDeutschlandUSERNAME-country-DE
AmazonJapanUSERNAME-country-JP
Amazon.frFrankreichUSERNAME-country-FR
Amazon.inIndienUSERNAME-country-IN

Überprüfung ProxyHat's vollständige Standortliste für alle unterstützten Länder.

5. Sitzungen richtig handhaben

Amazon verfolgt Sitzungen über Cookies. Die Annahme und Rückgabe von Cookies macht Ihre Anfragen mehr wie ein echter Browser. Für paginated browsing (Suchergebnisse, Bewertungen) verwenden Sie klebrige Sitzungen, um die gleiche IP- und Cookie-Fehler zu erhalten.

# Sticky session for paginated scraping
PROXY_SESSION = "http://USERNAME-session-amz{session_id}:PASSWORD@gate.proxyhat.com:8080"
def create_session(session_id):
    """Create a requests session with sticky proxy and cookies."""
    session = requests.Session()
    proxy = PROXY_SESSION.format(session_id=session_id)
    session.proxies = {"http": proxy, "https": proxy}
    session.headers.update({
        "User-Agent": get_random_user_agent(),
        "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
        "Accept-Language": "en-US,en;q=0.9",
        "Accept-Encoding": "gzip, deflate, br",
    })
    return session

6. Überwachen Sie Ihre Erfolgsquote

Verfolgen Sie Ihre HTTP 200 Rate, CAPTCHA Rate und Blockrate in Echtzeit. Setzen Sie Schwellenwerte, um Ihren Abstreifer automatisch zu drosseln, wenn die Erkennung zunimmt.

class SuccessTracker:
    def __init__(self, captcha_threshold=0.1, block_threshold=0.05):
        self.total = 0
        self.success = 0
        self.captchas = 0
        self.blocks = 0
        self.captcha_threshold = captcha_threshold
        self.block_threshold = block_threshold
    def record(self, status):
        self.total += 1
        if status == "success":
            self.success += 1
        elif status == "captcha":
            self.captchas += 1
        elif status == "block":
            self.blocks += 1
    @property
    def should_throttle(self):
        if self.total < 10:
            return False
        captcha_rate = self.captchas / self.total
        block_rate = self.blocks / self.total
        return captcha_rate > self.captcha_threshold or block_rate > self.block_threshold
    @property
    def success_rate(self):
        return self.success / self.total if self.total > 0 else 0

Erholung nach einem Ban

Wenn ein IP verboten wird, hier ist, wie man sich erholt:

  1. Stoppen Sie sofort: Senden Sie keine Anfragen aus der verbotenen IP oder in der Nähe von IPs weiter.
  2. IP-Schalter: Verwenden Sie ein frisches Set von Wohn-IPs aus einem anderen Bereich. Der große Pool von ProxyHat sorgt für saubere IPs.
  3. Passen Sie Ihren Ansatz an: Überprüfen Sie Ihre Anfrage Muster, Verzögerungen und Kopfzeilen vor dem Wiederaufnahme.
  4. Beginnen Sie langsam: Bei der Wiederaufnahme beginnen Sie mit einer niedrigen Anforderungsrate und steigen allmählich.
  5. Warten Sie. Amazon Verbote verfallen typischerweise innerhalb von 24-48 Stunden für weiche Blöcke und bis zu 7 Tage für harte Blöcke auf bestimmten IPs.

Node.js Verbot Prävention

Hier ist eine äquivalente Node.js Implementierung mit ProxyHat's Node SDK.

const axios = require("axios");
const { HttpsProxyAgent } = require("https-proxy-agent");
const PROXY_URL = "http://USERNAME:PASSWORD@gate.proxyhat.com:8080";
const USER_AGENTS = [
  "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/124.0.0.0 Safari/537.36",
  "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 Chrome/124.0.0.0 Safari/537.36",
  "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:125.0) Gecko/20100101 Firefox/125.0",
];
async function safeAmazonRequest(url, maxRetries = 3) {
  for (let attempt = 0; attempt < maxRetries; attempt++) {
    const agent = new HttpsProxyAgent(PROXY_URL);
    try {
      const response = await axios.get(url, {
        httpsAgent: agent,
        headers: {
          "User-Agent": USER_AGENTS[Math.floor(Math.random() * USER_AGENTS.length)],
          "Accept-Language": "en-US,en;q=0.9",
          Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
          "Accept-Encoding": "gzip, deflate, br",
        },
        timeout: 30000,
        validateStatus: () => true,
      });
      if (response.data.toLowerCase().includes("captcha") || response.status === 503) {
        console.log(`CAPTCHA/block on attempt ${attempt + 1}`);
        await new Promise((r) => setTimeout(r, 10000 + Math.random() * 20000));
        continue;
      }
      if (response.status === 200) return response;
    } catch (err) {
      await new Promise((r) => setTimeout(r, 5000 + Math.random() * 10000));
    }
  }
  return null;
}
// Random delay between requests
function randomDelay(minMs = 2000, maxMs = 7000) {
  const delay = minMs + Math.random() * (maxMs - minMs);
  return new Promise((r) => setTimeout(r, delay));
}

Vorbeugende Checkliste

Verwenden Sie diese Checkliste, bevor Sie einen Amazon-Schrotter ausführen:

  • Verwendung von Wohn-Proxies (nicht Rechenzentrum)
  • Proxy Geolocation Spiele Zielmarkt
  • User-Agent Strings sind aktuell und gedreht
  • Alle Standard-Browser-Header sind enthalten
  • Anfragen Verzögerungen sind randomisiert (2-7 Sekunden Minimum)
  • URLs werden geschüttelt, nicht sequentiell verarbeitet
  • Cookie-Handling ist aktiviert
  • CAPTCHA Erkennung und automatische Rückmeldung sind vorhanden
  • Erfolgsquotenüberwachung ist aktiv
  • Konkurrenz ist begrenzt (ab 5-10 parallele Anfragen)

Schlüsselanhänger

  • Amazons Erkennung ist mehrschichtig: fordern Fingerabdrücke, Verhaltensmuster und IP-Reputation alle Materie.
  • Die gebietsansässigen Proxies sind nicht verhandelbar — Rechenzentrum IPs Gesicht sofortige erhöhte Kontrolle.
  • Match Proxy Geo-Location zum Ziel Amazon Marktplatz.
  • Randomize alles: Verzögerungen, User-Agents, Anforderungsauftrag und Sitzungsmuster.
  • CAPTCHAs als Frühwarnungen behandeln und sofort anpassen.
  • Überwachen Sie die Erfolgsquoten und drosseln Sie automatisch, wenn die Erkennung zunimmt.

Für eine komplette Amazon Scraping-Setup, lesen Sie unsere Amazon Produktdaten Schrottführer und erkunden Sie die volle E-Commerce-Schrottstrategie. Beginnen Sie mit ProxyHat's Wohn-Proxies für zuverlässigen Amazon-Zugang.

Bereit loszulegen?

Zugang zu über 50 Mio. Residential-IPs in über 148 Ländern mit KI-gesteuerter Filterung.

Preise ansehenResidential Proxies
← Zurück zum Blog