Comprendere il sistema IP Ban di Amazon
Amazon gestisce uno dei più sofisticati sistemi anti-bot su internet. Quando gli indirizzi IP vengono vietati, si perde l'accesso ai dati del prodotto che guida le operazioni di pricing, ricerca e intelligenza competitiva. Capire come Amazon rileva e vieta gli IP è il primo passo per impedirlo.
Amazon non blocca semplicemente IP individuali — costruisce profili comportamentali. Un singolo IP sospetto potrebbe innescare blocchi morbidi (CAPTCHAs), mentre le violazioni persistenti portano a blocchi duri (completa negazione di accesso). Il sistema traccia i modelli tra gli intervalli IP, così ottenere un IP vietato può aumentare il controllo sugli indirizzi vicini. Per una comprensione completa dei metodi di rilevamento, vedere la nostra guida come i sistemi anti-bot rilevano i proxy.
Come Amazon rileva il traffico automatizzato
Il rilevamento di Amazon funziona su più strati contemporaneamente.
Detezione a richiesta
| Segnale | Cosa controlla Amazon | Livello di rischio |
|---|---|---|
| TLS Fingerprint | TLS handshake corrisponde a librerie di bot conosciute (richieste di Python, curl) | Alto |
| Ordine intestazione | Intestazioni HTTP inviate in ordine non-browser | Media |
| Intestazioni mancanti | Assenza di Accetta-Language, Accetta-Codifica, ecc. | Alto |
| User-Agent | stringhe obsolete, invalide o note-bot User-Agent | Alto |
| Gestione dei cookie | Non accettare o restituire i cookie di sessione | Media |
Detezione comportamentale
| Modello | Descrizione | Livello di rischio |
|---|---|---|
| Intervalli fissi | Richieste che arrivano a intervalli esatti (ogni 5,0 secondi) | Alto |
| Strisciando sequenziale | Visitare ASIN in ordine numerico o alfabetico | Alto |
| Nessun percorso di navigazione | Salta direttamente alle pagine del prodotto senza navigazione | Media |
| Volume di alta richiesta | Centinaia di richieste al minuto da un IP | Critica |
| Nessuna esecuzione JavaScript | Pagine caricate senza eseguire JavaScript | Media |
Rilevazione IP-Level
Amazon mantiene database di intervalli IP datacenter e provider proxy noti. Gli IP del Datacenter affrontano un controllo immediato accresciuto indipendentemente dal comportamento. IP residenziali iniziare con maggiore fiducia perché condividono piscine con veri acquirenti Amazon.
Tipi di blocchi Amazon
Capire i diversi tipi di blocco ti aiuta a rispondere in modo appropriato.
Blocchi morbidi (CAPTCHA)
La risposta più comune. Amazon serve una pagina CAPTCHA invece dei dati del prodotto. Questo è un avvertimento — continuano dallo stesso IP e si escalerà a un blocco duro. Quando si riceve un CAPTCHA, disattivare immediatamente e passare a un nuovo IP.
Blocchi rigidi (503/403 errori)
Rinnegamento completo dell'accesso, in genere restituendo i codici di stato HTTP 503 o 403. I blocchi rigidi possono durare ore a giorni per un IP specifico. Una volta bloccato, che l'IP è effettivamente inutilizzabile per Amazon fino alla scadenza del blocco.
Manipolazione dei contenuti
Amazon a volte serve diversi contenuti per sospetti bot — prezzi errati, recensioni mancanti, o dati di prodotto incompleti. Questo è più difficile da rilevare perché si riceve una risposta di 200. Convalida i tuoi dati raschiati contro i valori noti per catturare questo.
Asporto chiave: CAPTCHA sono segnali di avvertimento, non solo ostacoli. Trattare ogni CAPTCHA come un indicatore che il vostro approccio attuale ha bisogno di regolazione.
Strategie di prevenzione
1. Utilizzare i proxy residenziali
Questo è il cambiamento più efficace che si può fare. I proxy residenziali utilizzano gli indirizzi IP assegnati agli abbonati Internet reali, rendendo le vostre richieste indistinguibili da veri acquirenti. Il pool proxy residenziale di ProxyHat copre 195+ paesi con milioni di 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. Implement Smart Rotation
Non inviare mai più di 5-10 richieste da un singolo IP a Amazon. Il gateway di ProxyHat ruota automaticamente gli IP per richiesta di default, ma è necessario implementare anche i controlli a livello di applicazione.
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. Randomize Request Patterns
Ogni aspetto del modello di richiesta dovrebbe includere casualità per evitare il rilevamento statistico.
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. Abbina Geo-Locazione a Marketplace
Accedere a amazon.com da un IP tedesco o amazon.de da un IP giapponese è un forte segnale di attività automatizzata. Abbina sempre la posizione del proxy al mercato di destinazione.
| Mercato | Paese del proxy | Configurazione ProxyHat |
|---|---|---|
| Amazon.com | Stati Uniti | USERNAME-country-US |
| amazon.co.uk | Regno Unito | USERNAME-country-GB |
| Amazon.de | Germania | USERNAME-country-DE |
| amazon.co.jp | Giappone | USERNAME-country-JP |
| amazon.fr | Francia | USERNAME-country-FR |
| Amazon.in | India | USERNAME-country-IN |
Check Elenco completo di ProxyHat per tutti i paesi sostenuti.
5. sessioni di maniglia correttamente
Amazon traccia le sessioni tramite i cookie. Accettare e restituire i cookie rende le tue richieste più simili a un vero browser. Per la navigazione impaginata (risultati di ricerca, recensioni), utilizzare sessioni appiccicose per mantenere lo stesso vaso IP e 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. Controlla il tuo tasso di successo
Traccia il tasso HTTP 200, tasso CAPTCHA e blocca la velocità in tempo reale. Impostare le soglie per regolare automaticamente il raschietto quando il rilevamento aumenta.
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 0Recupero Dopo un Ban
Se un IP viene vietato, ecco come recuperare:
- Stop immediatamente: Non continuare a inviare richieste da IP vietati o IP vicini.
- Interruttore IPs: Utilizzare una nuova serie di IP residenziali da una diversa gamma. La grande piscina di ProxyHat garantisce sempre la disponibilità di IP puliti.
- Regolare il vostro approccio: Rivedere i modelli di richiesta, ritardi e intestazioni prima di riprendere.
- Inizia lentamente: Quando si riprende, iniziare con un basso tasso di richiesta e aumentare gradualmente.
- Aspetta. Amazon bans tipicamente scadono entro 24-48 ore per blocchi morbidi e fino a 7 giorni per blocchi duri su IP specifici.
Node.js Ban Prevention
Ecco un'implementazione equivalente Node.js utilizzando SDK del nodo di ProxyHat.
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));
}Prevenzione Checklist
Utilizzare questa lista di controllo prima di eseguire qualsiasi raschietto Amazon:
- Utilizzo di proxy residenziali (non datacenter)
- Proxy geolocalizzazione match target marketplace
- Le stringhe User-Agent sono correnti e ruotate
- Tutte le intestazioni standard del browser sono incluse
- Richiesta di ritardi sono randomizzati (2-7 secondi minimo)
- Gli URL sono smorzati, non elaborati in modo sequenziale
- La gestione dei cookie è abilitata
- Il rilevamento CAPTCHA e il backup automatico sono in posizione
- Il monitoraggio dei tassi di successo è attivo
- La frequenza è limitata (a partire da 5-10 richieste parallele)
Asporto chiave
- Il rilevamento di Amazon è multi-strato: richiedere impronte digitali, modelli comportamentali e la reputazione IP tutto importa.
- I proxy residenziali non sono negoziabili — gli IP del datacenter affrontano un controllo immediato accresciuto.
- Abbina geolocalizzazione proxy al mercato Amazon di destinazione.
- Randomize tutto: ritardi, Utente-Aggenti, ordine di richiesta e modelli di sessione.
- Trattare CAPTCHAs come avvisi anticipati e regolare immediatamente.
- Monitorare i tassi di successo e regolare automaticamente quando il rilevamento aumenta.
Per una configurazione completa di raschiamento Amazon, leggi il nostro Guida di raschiamento dati prodotti Amazon ed esplorare il pieno e-commerce scraping strategia. Inizia con I proxy residenziali di ProxyHat per un accesso affidabile Amazon.






