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 Amazon | Poziom ryzyka |
|---|---|---|
| TLS Odcisk palca | TLS handshake mecze znane biblioteki bot (Python życzenia, curl) | Wysoki |
| Kolejność nagłówków | Nagłówki HTTP wysyłane w kolejności nie-przeglądarki | Średni |
| Brak nagłówków | Brak języka akceptacji, kodowania akceptacji itp. | Wysoki |
| User- Agent | Przeterminowane, nieprawidłowe lub znane-bot User-Agent struny | Wysoki |
| Obsługa plików cookie | Brak akceptacji lub zwracania plików cookie sesji | Średni |
Wykrywanie behawioralne
| Wzór | Opis | Poziom ryzyka |
|---|---|---|
| Okresy stałe | Wnioski przychodzące w dokładnych odstępach czasu (co 5,0 sekundy) | Wysoki |
| Sekwencyjne pełzanie | Wizytowanie ASI w porządku numerycznym lub alfabetycznym | Wysoki |
| Brak ścieżki nawigacyjnej | Skoki bezpośrednio na strony produktu bez przeglądania | Średni |
| Wysoki wolumen żądań | Setki wniosków na minutę z jednego IP | Krytyczne |
| Brak wykonania JavaScript | Strony 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:80802. 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 None3. 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.
| Rynek | Kraj proxy | Konfiguracja ProxyHat |
|---|---|---|
| amazon.com | Stany Zjednoczone | USERNAME-country-US |
| amazon.co.uk | Zjednoczone Królestwo | USERNAME-country-GB |
| amazon.de | Niemcy | USERNAME-country-DE |
| amazon.co.jp | Japonia | USERNAME-country-JP |
| amazon.fr | Francja | USERNAME-country-FR |
| amazon.in | Indie | USERNAME-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 session6. 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 0Odzysk po zakazie
Jeśli IP zostanie zakazane, oto jak odzyskać:
- Natychmiast przerwać: Nie wysyłaj wniosków z zakazanego IP lub pobliskich IP.
- Przełącznik IP: Użyj nowego zestawu mieszkalnych IP z innego zakresu. Duży basen ProxyHat zapewnia zawsze czyste IP dostępne.
- Popraw swoje podejście: Przed wznowieniem należy zapoznać się ze schematami, opóźnieniami i nagłówkami.
- Zacznij powoli: Po wznowieniu, rozpocząć od niskiego wskaźnika zapotrzebowania i stopniowo wzrastać.
- 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.






