Comprender el sistema de prohibición IP de Amazon
Amazon opera uno de los sistemas anti-bot más sofisticados en Internet. Cuando sus direcciones IP se prohíben, pierde acceso a los datos de productos que impulsan sus operaciones de precios, investigación y inteligencia competitivas. Comprender cómo Amazon detecta y prohibe IPs es el primer paso para prevenirlo.
Amazon no simplemente bloquea IPs individuales — construye perfiles conductuales. Un único IP sospechoso podría desencadenar bloques blandos (CAPTCHA), mientras que las violaciones persistentes conducen a bloques duros (negación completa del acceso). El sistema rastrea patrones en rangos IP, por lo que conseguir una IP prohibida puede aumentar el escrutinio en direcciones vecinas. Para una comprensión completa de los métodos de detección, consulte nuestra guía cómo los sistemas antibot detectan proxies.
Cómo Amazon detecta tráfico automatizado
La detección de Amazon opera en múltiples capas simultáneamente.
Detección de volumen
| Signal | Lo que Amazon chequea | Nivel de riesgo |
|---|---|---|
| TLS Fingerprint | TLS Handhake coincide con las bibliotecas bot conocidas (Python peticiones, curl) | Alto |
| Header Order | HTTP headers sent in non-browser order | Mediana |
| Cabeceras desaparecidas | Absence of Accept-Language, Accept-Encoding, etc. | Alto |
| User-Agent | Cadenas desactualizadas, inválidas o conocidas-bot User-Agent | Alto |
| Cookie Handling | No aceptar o devolver cookies de sesión | Mediana |
Detección conductual
| Patrón | Descripción | Nivel de riesgo |
|---|---|---|
| Intervalos fijos | Solicitudes que llegan a intervalos exactos (cada 5.0 segundos) | Alto |
| Rastreo secuencial | Visitando ASINs en orden numérico o alfabético | Alto |
| No hay ruta de navegación | Saltar directamente a las páginas de productos sin navegar | Mediana |
| Volumen de alta solicitud | Cientos de solicitudes por minuto de una IP | Crítica |
| No Ejecución de JavaScript | Páginas cargadas sin ejecutar JavaScript | Mediana |
Detección IP-Level
Amazon mantiene bases de datos de rangos IP de centro de datos y proveedores proxy conocidos. Datacenter IPs enfrentan escrutinio intensificado inmediato independientemente del comportamiento. IP residentes empezar con mayor confianza porque comparten piscinas con verdaderos compradores de Amazon.
Tipos de bloques de Amazon
Comprender los diferentes tipos de bloques le ayuda a responder adecuadamente.
Bloques blandos (CAPTCHA)
La respuesta más común. Amazon sirve una página CAPTCHA en lugar de los datos del producto. Esta es una advertencia - continuar desde la misma IP y se escalará a un bloque duro. Cuando reciba un CAPTCHA, retroceda inmediatamente y cambie a una nueva IP.
Bloques duros (503/403 Errores)
Negación completa de acceso, normalmente devolver códigos de estado HTTP 503 o 403. Los bloques duros pueden durar horas a días para una IP específica. Una vez bloqueado, que IP es efectivamente inutilizable para Amazon hasta que el bloque expira.
Manipulación del contenido
Amazon a veces sirve diferentes contenidos a los bots sospechosos — precios incorrectos, reseñas perdidas, o datos de productos incompletos. Esto es más difícil de detectar porque usted recibe una respuesta de 200. Valida tus datos eliminados contra valores conocidos para atrapar esto.
Key takeaway: CAPTCHAs son señales de advertencia, no sólo obstáculos. Trate a cada CAPTCHA como un indicador que su enfoque actual necesita ajuste.
Estrategias de prevención
1. Uso de ejes residenciales
Este es el cambio más impactante que puedes hacer. Los proxies residenciales utilizan direcciones IP asignadas a suscriptores de Internet reales, haciendo que sus solicitudes sean indistinguibles de verdaderos compradores. La piscina proxy residencial de ProxyHat cubre 195 países con millones de 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:80802. Implementar la rotación inteligente
Nunca enviar más de 5-10 solicitudes de un solo IP a Amazon. La puerta de entrada de ProxyHat gira automáticamente IPs por solicitud por defecto, pero también debe implementar controles de nivel de aplicación.
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. Patrones de solicitud aleatorios
Cada aspecto de su patrón de solicitud debe incluir aleatoriedad para evitar la detección estadística.
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. Geo-Location Match a Marketplace
Acceder a amazon.com de una IP alemana o amazon.de de una IP japonesa es una señal fuerte de actividad automatizada. Siempre coincide con su ubicación proxy en el mercado de destino.
| Mercado | Proxy Country | Configuración ProxyHat |
|---|---|---|
| amazon.com | Estados Unidos | USERNAME-country-US |
| amazon.co.uk | Reino Unido | USERNAME-country-GB |
| amazon.de | Alemania | USERNAME-country-DE |
| amazon.co.jp | Japón | USERNAME-country-JP |
| amazon.fr | Francia | USERNAME-country-FR |
| amazon.in | India | USERNAME-country-IN |
Check Lista de ubicación completa de ProxyHat para todos los países apoyados.
5. Períodos de sesiones adecuados
Sesiones de pistas de Amazon a través de cookies. Aceptar y devolver las cookies hace que sus solicitudes se vean más como un navegador real. Para navegar por paginas (Resultados de búsqueda, reseñas), utilice sesiones pegajosas para mantener el mismo frasco IP y 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. Supervisar su tasa de éxito
Rastree su HTTP 200 velocidad, CAPTCHA tasa y velocidad de bloqueo en tiempo real. Establecer umbrales para acelerar automáticamente el raspador cuando la detección 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 0Recuperación después de una prohibición
Si se prohíbe una IP, aquí es cómo recuperar:
- Para inmediatamente: No siga enviando solicitudes de IP prohibidas o IPs cercanas.
- Interruptor IPs: Utilice un nuevo conjunto de IPs residenciales de un rango diferente. La gran piscina de ProxyHat garantiza que siempre tiene IPs limpias disponibles.
- Ajuste su enfoque: Revise sus patrones de solicitud, retrasos y encabezados antes de reanudar.
- Comience lentamente: Al reanudarse, comience con una baja tasa de solicitud y aumente gradualmente.
- Espera. Las prohibiciones de Amazon suelen expirar dentro de 2448 horas para bloques blandos y hasta 7 días para bloques duros en IPs específicas.
Node.js Prevención de la prohibición
Aquí hay una implementación equivalente Node.js usando Nodo de 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 de verificación para la prevención
Utilice esta lista de verificación antes de ejecutar cualquier raspador de Amazon:
- Uso de proxies residenciales (no centro de datos)
- Proxy geolocalización coincide con el mercado objetivo
- Las cadenas User-Agent son corrientes y rotadas
- Todos los encabezados estándar del navegador están incluidos
- Solicitud de retrasos se aleatorizan (2-7 segundos mínimo)
- Las direcciones URL son escabuladas, no procesadas secuencialmente
- El manejo de cookies está habilitado
- CAPTCHA detección y retroceso automático están en marcha
- La vigilancia de la tasa de éxito es activa
- La concurrencia es limitada (a partir de 5-10 solicitudes paralelas)
Key Takeaways
- La detección de Amazon es multicapa: solicitar huellas dactilares, patrones conductuales y reputación IP todo importa.
- Los proxies residenciales son no negociables — los IPs de centro de datos enfrentan escrutinio intensificado inmediato.
- Coincide geo-localización proxy en el mercado Amazon destino.
- Aleatoriamente todo: retrasos, agentes de usuario, orden de solicitud y patrones de sesión.
- Tratar a los CAPTCHAs como advertencias tempranas y ajustar inmediatamente.
- Supervisar las tasas de éxito y acelerar automáticamente cuando aumenta la detección.
Para una configuración completa de chatarra en Amazon, lea nuestra Guía de chatarra de datos de productos Amazon y explorar el todo e-commerce scraping strategy. Comenzar con Los proxies residenciales de ProxyHat para el acceso confiable de Amazon.






