Jak uniknąć Amazon Zakaz IP podczas skracania

Zrozumienie systemu zakazu własności intelektualnej Amazon i poznanie sprawdzonych strategii, aby uniknąć wykrycia. Obejmuje konfigurację proxy mieszkalnych, Randomizacja żądanie, geocelowanie i procedury odzyskiwania.

Jak uniknąć Amazon Zakaz IP podczas skracania

Zrozumienie systemu zakazu IP Amazona

Amazon obsługuje jeden z najbardziej zaawansowanych systemów antybotowych w Internecie. Kiedy twoje adresy IP są zakazane, tracisz dostęp do danych produktów, które napędzają Twoje cenniki, badania i konkurencyjne operacje wywiadowcze. Zrozumienie, w jaki sposób Amazon wykrywa i zakazuje IP, jest pierwszym krokiem do zapobiegania temu.

Amazon nie blokuje po prostu poszczególnych IP - tworzy profile behawioralne. Pojedyncze podejrzane IP może wywołać miękkie bloki (CAPTCHA), podczas gdy trwałe naruszenia prowadzą do twardych bloków (całkowite zaprzeczenie dostępu). System śledzi wzory w różnych zakresach IP, więc uzyskanie jednego IP zakazane może zwiększyć kontrolę na sąsiednich adresów. Aby uzyskać kompleksowe zrozumienie metod wykrywania, zobacz nasz przewodnik na jak systemy anty-bot wykrywają proxy.

Jak Amazon wykrywa zautomatyzowany ruch

Wykrywanie Amazon działa jednocześnie na wielu warstwach.

Wykrywanie poziomu zapotrzebowania

SygnałCo kontroluje AmazonPoziom ryzyka
TLS Odcisk palcaTLS handshake mecze znane biblioteki bot (Python życzenia, curl)Wysoki
Kolejność nagłówkówNagłówki HTTP wysyłane w kolejności nie-przeglądarkiŚredni
Brak nagłówkówBrak języka akceptacji, kodowania akceptacji itp.Wysoki
User- AgentPrzeterminowane, nieprawidłowe lub znane-bot User-Agent strunyWysoki
Obsługa plików cookieBrak akceptacji lub zwracania plików cookie sesjiŚredni

Wykrywanie behawioralne

WzórOpisPoziom ryzyka
Okresy stałeWnioski przychodzące w dokładnych odstępach czasu (co 5,0 sekundy)Wysoki
Sekwencyjne pełzanieWizytowanie ASI w porządku numerycznym lub alfabetycznymWysoki
Brak ścieżki nawigacyjnejSkoki bezpośrednio na strony produktu bez przeglądaniaŚredni
Wysoki wolumen żądańSetki wniosków na minutę z jednego IPKrytyczne
Brak wykonania JavaScriptStrony załadowane bez wykonywania JavaScriptŚredni

Wykrywanie poziomu IP-

Amazon utrzymuje bazy danych o zakresach IP i znanych dostawców proxy. IP Datacenter stoi w obliczu natychmiastowej wzmożonej kontroli niezależnie od zachowania. IP mieszkaniowe zacząć od wyższego zaufania, ponieważ dzielą się basenami z prawdziwymi kupującymi Amazon.

Rodzaje bloków Amazon

Zrozumienie różnych typów bloków pomaga odpowiednio reagować.

Miękkie bloki (CAPTCHA)

Najczęstsza reakcja. Amazon obsługuje stronę CAPTCHA zamiast danych o produktach. Jest to ostrzeżenie - kontynuuj z tego samego IP, a przejdziesz do twardego bloku. Po otrzymaniu CAPTCHA, natychmiast się wyłącz i przełącz na nowy IP.

Bloki twarde (503 / 403 Błędy)

Całkowita odmowa dostępu, zazwyczaj zwracając kody statusu HTTP 503 lub 403. Twarde bloki mogą trwać od godzin do dni dla konkretnego IP. Po twardym zablokowaniu, IP jest skutecznie bezużyteczny dla Amazon do czasu wygaśnięcia bloku.

Manipulacja zawartością

Amazon czasami podaje różne treści podejrzanym botom - nieprawidłowe ceny, brakujące opinie lub niekompletne dane o produktach. Jest to trudniejsze do wykrycia, ponieważ otrzymujesz odpowiedź 200. Potwierdź swoje zeskrobywane dane przeciwko znanym wartościom, aby to złapać.

Kluczowe podejście: CAPTCHA to sygnały ostrzegawcze, nie tylko przeszkody. Traktuj każdy CAPTCHA jako wskaźnik, że obecne podejście wymaga dostosowania.

Strategie zapobiegania

1. Korzystanie z profili mieszkalnych

To najbardziej wpływowa zmiana, jaką możesz zrobić. Proxy mieszkalne używają adresów IP przypisanych do abonentów prawdziwego internetu, co sprawia, że Twoje żądania nie można odróżnić od prawdziwych klientów. Rezydencyjna pula proxy ProxyHat obejmuje 195 + krajów z milionami IP.

# 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. Wdrożenie inteligentnego obrotu

Nigdy nie wysyłaj więcej niż 5- 10 wniosków z pojedynczego IP do Amazona. Brama ProxyHat automatycznie obraca IP na żądanie domyślnie, ale należy również wdrożyć kontrole poziomu aplikacji.

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. Randomizuj wzory żądań

Każdy aspekt wzoru wniosku powinien obejmować losowość, aby uniknąć wykrywania statystycznego.

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. Mecz Geo- Lokalizacja do Marketplace

Dostęp do Amazon.com z niemieckiego IP lub amazon.de z japońskiego IP jest silnym sygnałem automatycznej aktywności. Zawsze dopasowuj swoją lokalizację do targów.

RynekKraj proxyKonfiguracja ProxyHat
amazon.comStany ZjednoczoneUSERNAME-country-US
amazon.co.ukZjednoczone KrólestwoUSERNAME-country-GB
amazon.deNiemcyUSERNAME-country-DE
amazon.co.jpJaponiaUSERNAME-country-JP
amazon.frFrancjaUSERNAME-country-FR
amazon.inIndieUSERNAME-country-IN

Sprawdź Pełna lista lokalizacji ProxyHat dla wszystkich wspieranych krajów.

5. Odpowiednia obsługa sesji

Amazon śledzi sesje poprzez ciasteczka. Przyjmowanie i zwracanie plików cookie sprawia, że Twoje żądania wyglądają bardziej jak prawdziwa przeglądarka. Do przeglądania stron (wyniki wyszukiwania, opinie), użyj lepkich sesji, aby utrzymać ten sam IP i jar cookie.

# 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. Monitoruj swój wskaźnik sukcesu

Śledź stawkę HTTP 200, stawkę CAPTCHA i stawkę bloku w czasie rzeczywistym. Ustaw progi, aby automatycznie zaciskać scratcher, gdy wzrasta wykrywanie.

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

Odzysk po zakazie

Jeśli IP zostanie zakazane, oto jak odzyskać:

  1. Natychmiast przerwać: Nie wysyłaj wniosków z zakazanego IP lub pobliskich IP.
  2. Przełącznik IP: Użyj nowego zestawu mieszkalnych IP z innego zakresu. Duży basen ProxyHat zapewnia zawsze czyste IP dostępne.
  3. Popraw swoje podejście: Przed wznowieniem należy zapoznać się ze schematami, opóźnieniami i nagłówkami.
  4. Zacznij powoli: Po wznowieniu, rozpocząć od niskiego wskaźnika zapotrzebowania i stopniowo wzrastać.
  5. Poczekaj. Zakazy Amazon zwykle wygasają w ciągu 24-48 godzin dla miękkich bloków i do 7 dni dla twardych bloków na określonych IP.

Node.js Zapobieganie zakazowi

Oto równoważna implementacja Node.js przy użyciu Węzeł ProxyHat 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));
}

Lista kontrolna zapobiegania

Użyj tej listy przed uruchomieniem dowolnego scrapera Amazon:

  • Korzystanie z proxy mieszkalnych (nie datacenter)
  • Geolokacja Proxy pasuje do rynku docelowego
  • Struny User- Agent są aktualne i obracane
  • Wszystkie standardowe nagłówki przeglądarki są wliczone
  • Opóźnienia są randomizowane (minimum 2- 7 sekund)
  • URL są tasowane, nie przetwarzane kolejno
  • Obsługa plików cookie jest włączona
  • Wykrywanie CAPTCHA i automatyczne backup są na miejscu
  • Monitoring sukcesu jest aktywny
  • Konwaluta jest ograniczona (zacznij od 5- 10 równoległych wniosków)

Key Takeaways

  • Wykrywanie Amazon jest wielowarstwowe: żądania odcisków palców, wzorce zachowań i reputacja IP wszystko ma znaczenie.
  • Proxy mieszkaniowe nie podlegają negocjacjom - dane IP stoją w obliczu natychmiastowej wzmożonej kontroli.
  • Dopasuj geolokalizację proxy do targów Amazon.
  • Randomizuj wszystko: opóźnienia, Agenci User-, zamówienie i wzory sesji.
  • Należy leczyć CAPTCHA tak wcześnie, jak to możliwe i natychmiast dostosować dawkę.
  • Monitoruj wskaźniki sukcesu i automatycznie przyspieszaj, gdy wzrasta poziom detekcji.

Dla kompletnego Amazon scrating konfiguracji, przeczytaj nasz Amazon przewodnik danych produktu i badać pełną Strategia rozdrabniania handlu elektronicznegoZacznij od ProxyHat 's residential proxy dla niezawodnego dostępu Amazon.

Gotowy, aby zacząć?

Dostęp do ponad 50 mln rezydencjalnych IP w ponad 148 krajach z filtrowaniem AI.

Zobacz cenyProxy rezydencjalne
← Powrót do Bloga