Entendendo o sistema de proibição de IP da Amazon
A Amazon opera um dos sistemas antibots mais sofisticados da internet. Quando seus endereços IP são banidos, você perde o acesso aos dados do produto que impulsionam suas operações de preços, pesquisa e inteligência competitiva. Entender como a Amazon detecta e proíbe IPs é o primeiro passo para evitá-lo.
A Amazon não bloqueia simplesmente IPs individuais — constrói perfis comportamentais. Um único IP suspeito pode desencadear blocos moles (CAPTCHAs), enquanto violações persistentes levam a blocos rígidos (renegação de acesso completa). O sistema rastreia padrões em intervalos de IP, então obter um IP proibido pode aumentar o escrutínio em endereços vizinhos. Para uma compreensão abrangente dos métodos de detecção, consulte como sistemas anti-bots detectam proxies.
Como a Amazon detecta tráfego automatizado
A detecção da Amazon opera em múltiplas camadas simultaneamente.
Detecção de Nível de Pedido
| Sinal | O que a Amazon verifica | Nível de Risco |
|---|---|---|
| Impressão digital TLS | O aperto de mão TLS corresponde às bibliotecas de bots conhecidas (pedidos Python, curl) | Alta |
| Ordem do cabeçalho | cabeçalhos HTTP enviados em ordem não- navegador | Médio |
| Cabeçalhos em Falta | Ausência de Aceitar-Língua, Aceitar-Codificação, etc. | Alta |
| Agente do Usuário | Textos fora de data, inválidos ou conhecidos como User-Agent | Alta |
| Tratamento de Cookies | Não aceitar ou devolver cookies de sessão | Médio |
Detecção comportamental
| Padrão | Designação das mercadorias | Nível de Risco |
|---|---|---|
| Intervalos fixos | Pedidos que chegam em intervalos exatos (a cada 5,0 segundos) | Alta |
| Rastreamento sequencial | Visitar ASINs em ordem numérica ou alfabética | Alta |
| Sem caminho de navegação | Saltando diretamente para páginas de produto sem navegação | Médio |
| Volume elevado de pedidos | Centenas de pedidos por minuto de um IP | Crítico |
| Sem execução JavaScript | Páginas carregadas sem executar o JavaScript | Médio |
Detecção de Nível IP
Amazon mantém bancos de dados de intervalos IP datacenter e provedores proxy conhecidos. Os IPs do Datacenter enfrentam um escrutínio imediato, independentemente do comportamento. IPs residenciais começar com maior confiança porque eles compartilham piscinas com verdadeiros compradores da Amazon.
Tipos de Blocos da Amazônia
Compreender os diferentes tipos de blocos ajuda você a responder adequadamente.
Blocos macios (CAPTCHA)
A resposta mais comum. Amazon serve uma página CAPTCHA em vez de dados de produto. Este é um aviso — continue a partir do mesmo IP e você vai aumentar para um bloco rígido. Quando receber um CAPTCHA, afaste-se imediatamente e mude para um novo IP.
Blocos rígidos (503/403 erros)
Negação completa de acesso, normalmente retornando códigos de status HTTP 503 ou 403. Os blocos duros podem durar horas a dias para um IP específico. Uma vez bloqueado, esse IP é efetivamente inutilizável para a Amazon até que o bloco expire.
Manipulação do Conteúdo
A Amazon às vezes serve conteúdo diferente para os bots suspeitos — preços incorretos, revisões em falta ou dados incompletos do produto. Isso é mais difícil de detectar porque você recebe uma resposta de 200. Validar seus dados raspados contra valores conhecidos para capturar isso.
Key takeaway: CAPTCHAs são sinais de alerta, não apenas obstáculos. Trate cada CAPTCHA como um indicador de que sua abordagem atual precisa de ajuste.
Estratégias de prevenção
1. Use Proxies Residenciais
Esta é a mudança mais impactante que você pode fazer. Proxies residenciais usam endereços IP atribuídos a assinantes reais da internet, tornando seus pedidos indistinguíveis de compradores genuínos. O grupo de proxy residencial do ProxyHat abrange mais de 195 países com milhões 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 a rotação inteligente
Nunca envie mais de 5-10 pedidos de um único IP para a Amazon. O gateway do ProxyHat roda automaticamente IPs por solicitação por padrão, mas você também deve implementar controles de nível de aplicação.
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. Randomizar os Padrões de Pedido
Cada aspecto do seu padrão de solicitação deve incluir aleatoriedade para evitar a detecção estatí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. Combine geo-localização para Marketplace
Acessando amazon.com de um IP alemão ou amazon.de de um IP japonês é um forte sinal de atividade automatizada. Combina sempre a localização do seu proxy com o mercado alvo.
| Mercado | País Proxy | Configuração do ProxyHat |
|---|---|---|
| amazon.com | Estados Unidos | USERNAME-country-US |
| amazon.co.uk | Reino Unido | USERNAME-country-GB |
| amazon.de | Alemanha | USERNAME-country-DE |
| amazon.co.jp | Japão | USERNAME-country-JP |
| amazon.fr | França | USERNAME-country-FR |
| amazon.in | Índia | USERNAME-country-IN |
Verificar Lista de localização completa do ProxyHat para todos os países apoiados.
5. Lidar com as sessões corretamente
A Amazon rastreia sessões através de cookies. Aceitar e devolver cookies faz com que seus pedidos pareçam mais com um navegador real. Para navegação paginada (resultados de pesquisa, revisões), use sessões pegajosas para manter o mesmo IP e pote de cookies.
# 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. Monitore sua taxa de sucesso
Acompanhe sua taxa HTTP 200, CAPTCHA e taxa de bloqueio em tempo real. Defina limiares para estrangular automaticamente seu raspador quando a detecção aumentar.
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 0Recuperação após uma proibição
Se um IP for banido, aqui está como recuperar:
- Parar imediatamente: Não continue enviando pedidos do IP banido ou IPs próximos.
- Mudar de IP: Use um novo conjunto de IPs residenciais de uma gama diferente. A grande piscina do ProxyHat garante que você sempre tenha IPs limpos disponíveis.
- Ajuste sua abordagem: Reveja seus padrões de solicitação, atrasos e cabeçalhos antes de retomar.
- Iniciar lentamente: Ao retomar, comece com uma baixa taxa de solicitação e aumente gradualmente.
- Espera. As proibições da Amazon normalmente expiram dentro de 24-48 horas para blocos macios e até 7 dias para blocos duros em IPs específicos.
Node.js Ban Prevention
Aqui está uma implementação Node.js equivalente usando O Nó do 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 Verificação de Prevenção
Use esta lista de verificação antes de executar qualquer raspador Amazon:
- Usando proxies residenciais (não datacenter)
- A geolocalização do Proxy corresponde ao mercado alvo
- Textos do usuário são atuais e girados
- Todos os cabeçalhos padrão do navegador estão incluídos
- Atrasos na solicitação são randomizados (2-7 segundos mínimo)
- URLs são embaralhadas, não processadas sequencialmente
- O manuseamento de cookies está activo
- Detecção CAPTCHA e retrocesso automático estão no lugar
- A monitorização da taxa de sucesso está activa
- A concorrência é limitada (iniciar com 5-10 solicitações paralelas)
Tiras de Chaves
- A detecção da Amazon é multicamadas: solicita impressões digitais, padrões de comportamento e reputação IP.
- Proxies residenciais não são negociáveis — IPs datacenters enfrentam escrutínio imediato aumentado.
- Coincidir geo-localização proxy para o mercado alvo Amazon.
- Randomize tudo: atrasos, agentes do usuário, pedidos e padrões de sessão.
- Tratar CAPTCHAs como avisos precoces e ajustar imediatamente.
- Monitore as taxas de sucesso e acelere automaticamente quando a detecção aumentar.
Para uma instalação completa de raspagem da Amazon, leia Guia de raspagem de dados de produtos da Amazon e explorar o Estratégia de raspagem do comércio electrónicoComeçar com Proxies residenciais do ProxyHat para acesso confiável à Amazon.






