Voltar ao blog

Raspagem do Walmart: como escolher proxies e configurar a coleta de dados sem bloqueios

O Walmart utiliza uma poderosa proteção contra bots da PerimeterX. Analisamos quais proxies funcionam para scraping, como configurar a rotação e evitar bloqueios ao coletar preços e estoques.

📅24 de janeiro de 2026
```html

Walmart é a segunda maior loja online nos EUA, atrás apenas da Amazon, e seus dados são criticamente importantes para negócios de e-commerce: monitoramento de preços da concorrência, rastreamento de estoques, análise de sortimento. O problema é que o Walmart utiliza um sistema avançado de proteção contra bots PerimeterX, que bloqueia 90% das solicitações de parsers já na primeira página.

Neste guia, vamos discutir quais tipos de proxies realmente funcionam para parsing do Walmart, como configurar a rotação de endereços IP, contornar o fingerprinting do navegador e construir um sistema de coleta de dados estável que não falhe após uma hora de operação.

Por que o Walmart bloqueia parsers: mecanismos de proteção PerimeterX

O Walmart utiliza o sistema de proteção PerimeterX (agora chamado de HUMAN Security) — um dos sistemas anti-bot mais agressivos do mercado. Ele analisa cada solicitação com base em dezenas de parâmetros e bloqueia o tráfego suspeito antes mesmo que seu parser receba o código HTML da página.

Principais mecanismos de proteção do Walmart:

1. Análise de reputação de IP

O PerimeterX verifica cada endereço IP em um banco de dados de proxies conhecidos, datacenters e VPNs. Se seu IP estiver nesse banco — você receberá um bloqueio ou CAPTCHA. O Walmart filtra rigorosamente IPs de provedores de nuvem populares (AWS, Google Cloud, DigitalOcean).

2. Análise comportamental

O sistema rastreia como o usuário interage com a página: movimentos do mouse, velocidade de rolagem, cliques. Parsers em Selenium ou Puppeteer frequentemente são detectados aqui — eles abrem páginas muito rapidamente, sem pausas naturais, e não movem o mouse.

3. TLS e fingerprinting HTTP

O PerimeterX analisa a impressão TLS da sua conexão (ordem de cifras, extensões) e os cabeçalhos das solicitações HTTP. Bibliotecas padrão do Python (requests, urllib) têm impressões únicas que são facilmente reconhecidas. Mesmo que você tenha alterado o User-Agent, o sistema vê a discrepância entre os cabeçalhos e o navegador real.

4. Desafios JavaScript

Em uma solicitação suspeita, o PerimeterX envia um código JavaScript que executa verificações no navegador: disponibilidade da API Canvas, WebGL, parâmetros de tela, fontes instaladas. Parsers HTTP simples (sem motor de navegador) não conseguem passar por essas verificações e recebem bloqueio.

O que acontece ao ser bloqueado:

  • HTTP 403 Forbidden — a resposta mais comum, significa que seu IP ou fingerprint está na lista negra
  • Redirecionamento para uma página com CAPTCHA — o sistema não tem certeza, dá uma chance de provar que você é humano
  • Página vazia ou JSON com erro — o servidor não entrega conteúdo algum
  • Banimento temporário do IP por 15-60 minutos — em caso de parsing agressivo de um único endereço

A conclusão chave: para um parsing bem-sucedido do Walmart, é necessária uma estratégia abrangente, onde os proxies são apenas um dos elementos. Você também precisará do motor de navegador correto, simulação de comportamento humano e rotação adequada de endereços IP.

Quais proxies funcionam para parsing do Walmart: comparação de tipos

Nem todos os proxies são igualmente eficazes para contornar a proteção do Walmart. Vamos analisar quatro tipos principais e sua aplicabilidade à tarefa de parsing.

Tipo de proxy Eficácia para Walmart Velocidade Custo Recomendação
Proxies residenciais ⭐⭐⭐⭐⭐
Excelente — IPs de usuários reais, mínimo de bloqueios
Média
(200-800 ms)
Alta
(a partir de $7-15/GB)
Ideal para produção
Proxies móveis ⭐⭐⭐⭐⭐
Excelente — alta pontuação de confiança, raros bloqueios
Baixa
(500-1500 ms)
Muito alta
(a partir de $50-100/mês por IP)
Para casos complexos
Proxies de datacenter ⭐⭐
Pobre — alta probabilidade de bloqueio (70-90%)
Alta
(50-150 ms)
Baixa
(a partir de $1-3/IP)
Não recomendado
Proxies ISP ⭐⭐⭐⭐
Bom — IPs residenciais estáticos
Alta
(80-200 ms)
Média
(a partir de $30-80/mês por IP)
Para tarefas de longo prazo

Mais detalhes sobre cada tipo:

Proxies residenciais — o padrão ouro para Walmart

Estes são endereços IP de provedores de internet residenciais reais (Comcast, AT&T, Verizon nos EUA). O Walmart os vê como compradores comuns, portanto, a porcentagem de bloqueios é mínima — cerca de 5-10% com a configuração correta. A principal vantagem é a enorme quantidade de endereços (milhões de IPs), o que permite configurar uma rotação eficaz.

Quando usar: monitoramento de preços em milhares de produtos, coleta diária de dados, projetos de longo prazo. Para parsing do Walmart, proxies residenciais são a escolha ideal em termos de eficiência e custo.

Proxies móveis — máxima confiabilidade

IPs de operadoras móveis (T-Mobile, Verizon Wireless) têm a maior pontuação de confiança nos sistemas anti-bot. A razão é que um IP é utilizado por milhares de usuários reais (através de NAT do operador), portanto, bloquear um IP significa bloquear milhares de compradores. O Walmart praticamente não bloqueia IPs móveis.

Quando usar: se proxies residenciais não estão funcionando, se você precisa fazer parsing de seções especialmente protegidas (por exemplo, preços para regiões específicas), se o orçamento permite. Proxies móveis oferecem praticamente 100% de solicitações bem-sucedidas, mas custam mais.

Proxies de datacenter — não para Walmart

Endereços IP de servidores em datacenters (AWS, OVH, Hetzner) são instantaneamente reconhecidos pelo PerimeterX. Mesmo que você compre IPs "limpos", que não foram usados anteriormente para parsing, o sistema ainda vê que é um datacenter, e não um provedor residencial. A porcentagem de bloqueios é de 70-90%.

Único cenário de uso: teste do parser em um pequeno volume de dados (10-50 páginas). Para produção, não são adequados de forma alguma.

Proxies ISP (residenciais estáticos) são um híbrido: IPs de provedores residenciais, mas hospedados em datacenters e fornecidos a você por um longo período (um mês ou mais). Eles são mais rápidos que os proxies residenciais comuns, mas mais caros e têm um pool limitado de endereços. São adequados se você precisa de IPs estáveis para parsing de categorias de produtos específicas a longo prazo.

Proxies residenciais vs. proxies de datacenter: o que escolher para sua tarefa

Apesar de já termos descoberto que proxies residenciais são mais eficazes, vamos analisar detalhadamente as situações em que cada tipo pode ser justificado e calcular o custo real de propriedade.

Cenário 1: Monitoramento de 10.000 produtos diariamente

Com proxies residenciais:

  • Tamanho médio da página de produto do Walmart: ~500 KB
  • 10.000 produtos × 500 KB = 5 GB de tráfego por dia
  • Tráfego mensal: 150 GB
  • Custo a $10/GB: $1.500/mês
  • Porcentagem de solicitações bem-sucedidas: 90-95%
  • Custo real considerando repetições: ~$1.650/mês

Com proxies de datacenter (teoricamente):

  • Custo de 100 IPs: ~$200/mês
  • Porcentagem de solicitações bem-sucedidas: 10-30% (o restante — bloqueios)
  • É necessário fazer de 3 a 10 tentativas para cada produto
  • Tráfego real: 15-50 GB (devido a repetições)
  • Resultado: tarefa impossível — IPs rapidamente vão para o ban, CAPTCHA em cada passo

Cenário 2: Coleta única de dados para 500 produtos

Se você precisa coletar dados uma única vez para análise de mercado ou pesquisa, pode tentar uma abordagem combinada:

  • Use proxies de datacenter para a coleta inicial de URLs de produtos (páginas de categorias)
  • Troque para proxies residenciais para obter informações detalhadas sobre os produtos
  • Custo: ~$50-100 para a tarefa única
  • Tempo de execução: 2-4 horas em vez de 10-20 horas com datacenters

Fatores chave na escolha:

Critério Residenciais Datacenters
Volume de dados Qualquer — de 100 a milhões de páginas Apenas pequenos volumes (até 1000 páginas)
Regularidade Parsing diário/semanal Apenas tarefas únicas
Velocidade de execução Estável — sem atrasos em repetições Imprevisível — muitas repetições
Confiabilidade Alta — 90-95% de sucesso Baixa — 10-30% de sucesso
Custo do erro Baixo — você paga apenas pelo tráfego bem-sucedido Alto — você perde tempo e dinheiro com bans

Conclusão: Para qualquer tarefa séria de parsing do Walmart, use proxies residenciais ou móveis. Proxies de datacenter só podem ser considerados para testar a lógica do parser em 10-50 páginas, mas não para produção. Economizar em proxies resultará em perda de tempo, nervos e, no final, custará mais caro.

Estratégias de rotação de IP: frequência de troca e pools de endereços

Mesmo com proxies residenciais, você pode ser bloqueado se não configurar corretamente a rotação de endereços IP. O PerimeterX rastreia padrões de comportamento: se um único IP solicita 100 páginas de produtos em um minuto — isso é claramente um bot. A estratégia correta de rotação é a chave para um parsing estável sem bloqueios.

Três principais estratégias de rotação:

1. Rotação a cada solicitação (Rotating Proxies)

Cada solicitação HTTP passa por um novo endereço IP. Este é o modo padrão de operação da maioria dos provedores de proxies residenciais.

Vantagens:

  • Risco mínimo de bloqueio — cada IP faz 1-2 solicitações
  • Configuração simples — o provedor gerencia o pool
  • É possível fazer parsing de forma agressiva — centenas de solicitações por minuto

Desvantagens:

  • Problemas com sessões — se o site usa cookies, cada solicitação = nova sessão
  • Mais lento — leva de 200 a 500 ms para estabelecer uma nova conexão

Quando usar: Para parsing de páginas de produtos do Walmart, onde não é necessária autorização e sessões. Esta é a estratégia ideal para a maioria das tarefas de monitoramento de preços.

2. Sessões fixas (Sticky Sessions)

Um endereço IP é usado para uma série de solicitações durante um determinado período (geralmente de 5 a 30 minutos), em seguida, ocorre a troca para um novo IP.

Vantagens:

  • Manutenção de sessões e cookies — é possível trabalhar com o carrinho, autorização
  • Mais rápido — a conexão TCP é reutilizada
  • Comportamento mais "natural" para sistemas anti-bot

Desvantagens:

  • Risco de bloqueio maior — um IP faz de 10 a 50 solicitações
  • É necessário controlar os limites — não mais de 30-50 solicitações de um único IP

Quando usar: Se você precisa fazer parsing de dados que requerem autorização (por exemplo, preços para usuários registrados), ou se você está emulando o comportamento de um comprador real (navegando por categoria → produto → adicionando ao carrinho).

3. Pool de IPs estáticos com rotação manual

Você pega de 50 a 100 IPs residenciais estáticos (proxies ISP) e gerencia a distribuição das solicitações entre eles.

Vantagens:

  • Controle total — você sabe quantas solicitações cada IP fez
  • Máxima velocidade — IPs estáticos são mais rápidos que os rotating
  • É possível "aquecer" IPs — fazer solicitações legítimas para aumentar a reputação

Desvantagens:

  • Configuração complexa — é necessário escrever a lógica de distribuição das solicitações
  • Mais caro — proxies ISP custam $30-80 por IP por mês
  • Risco de perda de IP — se um for banido, você terá que substituí-lo

Quando usar: Para sistemas de alta carga com volume de 100.000+ solicitações por dia, onde a velocidade e a estabilidade são críticas. Requer experiência em desenvolvimento de parsers.

Configurações recomendadas para Walmart:

Para monitoramento de preços (parsing simples de páginas de produtos):

  • Tipo: Proxies rotating com rotação a cada solicitação
  • Atraso entre solicitações: 2-5 segundos
  • Paralelismo: 10-20 threads
  • Geolocalização: EUA (preferencialmente o estado onde há lojas físicas do Walmart)

Para parsing complexo (com autorização, carrinho):

  • Tipo: Sessões fixas com duração de 10-15 minutos
  • Limite de solicitações por IP: máximo de 30-40
  • Atraso entre solicitações: 3-7 segundos (simulação de humano)
  • Paralelismo: 5-10 threads (menos agressividade)

Importante: Muitos provedores de proxies residenciais permitem configurar a duração da sessão através de parâmetros de conexão. Por exemplo, adicionando session-15min ao nome de usuário, você obterá uma sessão fixa de 15 minutos. Verifique essa possibilidade com seu provedor.

Contornando o fingerprinting: User-Agent, cabeçalhos e impressões TLS

Proxies resolvem apenas metade do problema — eles lhe dão um IP limpo. Mas o PerimeterX analisa não apenas o IP, mas também a "impressão" do seu navegador ou parser. Mesmo com um IP residencial, você será bloqueado se seu cliente HTTP parecer um bot.

O que o PerimeterX verifica:

1. User-Agent e cabeçalhos HTTP

Bibliotecas padrão (Python requests, Node.js axios) enviam cabeçalhos que instantaneamente revelam um bot. Por exemplo, User-Agent: python-requests/2.28.1 — isso resulta em 100% de bloqueio.

O que precisa ser alterado:

  • User-Agent — use versões recentes do Chrome/Firefox
  • Accept — deve corresponder ao tipo de conteúdo
  • Accept-Language — en-US para parsing do Walmart EUA
  • Accept-Encoding — gzip, deflate, br
  • Referer — página anterior (categoria ou página inicial)
  • Sec-Fetch-* — cabeçalhos do Chrome para proteção contra CSRF

2. Impressão TLS (JA3)

Cada cliente HTTP tem uma impressão TLS única — ordem de cifras, extensões TLS, versões do protocolo. O PerimeterX compara essa impressão com o User-Agent: se você escreve "Chrome 120", mas a impressão TLS é do Python — você será bloqueado.

Solução:

  • Use bibliotecas com suporte a TLS personalizado: curl-impersonate (Python), tls-client (Go)
  • Ou use um navegador real através do Selenium/Puppeteer — eles têm uma impressão TLS real

3. Desafios JavaScript e fingerprinting Canvas

O PerimeterX pode enviar um código JavaScript que verifica: se a API Canvas está disponível, WebGL, quais fontes estão instaladas, tamanho da tela, fuso horário. Parsers HTTP simples não conseguem executar esse código.

Solução:

  • Use navegadores headless: Puppeteer, Playwright, Selenium
  • Certifique-se de ativar o modo de contorno de detecção: puppeteer-extra-plugin-stealth
  • Randomize os parâmetros: tamanho da janela, fuso horário, idioma do navegador

Exemplo de cabeçalhos corretos para parsing do Walmart:

GET /ip/Product-Name/12345678 HTTP/1.1
Host: www.walmart.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.9
Accept-Encoding: gzip, deflate, br
Referer: https://www.walmart.com/browse/electronics/tv-video/3944_1060825
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1
Upgrade-Insecure-Requests: 1
Connection: keep-alive

Detalhes importantes:

  • A ordem dos cabeçalhos é importante — navegadores reais os enviam em uma sequência específica. Use bibliotecas que respeitem essa ordem.
  • Cookies — se o PerimeterX definiu o cookie _px3 ou _pxvid, certifique-se de enviá-lo nas solicitações seguintes. Este é o token da sua sessão.
  • HTTP/2 — o Walmart utiliza HTTP/2, e a falta de suporte a este protocolo pode ser um sinal de bot. Certifique-se de que seu cliente suporta HTTP/2.
  • Não use os mesmos cabeçalhos para todas as solicitações — varie o User-Agent, use um pool de 10-20 versões diferentes de navegadores.

Rate limiting e atrasos: como não exceder os limites de solicitações

Mesmo com proxies e cabeçalhos ideais, você será bloqueado se for muito agressivo ao fazer parsing. O Walmart rastreia a frequência de solicitações e padrões de comportamento. Um usuário real não pode abrir 100 páginas de produtos em um minuto — o sistema anti-bot entende isso.

Limites recomendados para o Walmart:

Tipo de solicitação Atraso entre solicitações Máximo de solicitações de um IP Paralelismo
Páginas de produtos 2-5 segundos 30-50 páginas (com rotating) 10-20 threads
Páginas de categorias 3-7 segundos 20-30 páginas 5-10 threads
Busca 5-10 segundos 10-15 solicitações 3-5 threads
Endpoints de API 1-3 segundos 50-100 solicitações 20-30 threads

Por que a randomização de atrasos é importante:

Se você faz solicitações exatamente a cada 3 segundos (3.000, 6.000, 9.000...), o sistema anti-bot reconhece o padrão. Um ser humano real não pode ser tão preciso — ele terá variações: 2.8 seg, 3.4 seg, 2.9 seg.

Implementação correta do atraso (Python):

import random
import time

# Incorreto — atraso fixo
time.sleep(3)

# Correto — atraso randomizado
delay = random.uniform(2.0, 5.0)  # de 2 a 5 segundos
time.sleep(delay)

Estratégias de gerenciamento de carga:

1. Rate limiting adaptativo

Monitore a porcentagem de solicitações bem-sucedidas. Se você começar a receber 403 ou CAPTCHA — aumente automaticamente os atrasos e diminua o paralelismo.

success_rate = successful_requests / total_requests

if success_rate < 0.8:  # menos de 80% de sucesso
    delay_multiplier *= 1.5  # aumente os atrasos
    parallel_workers -= 2    # diminua os threads
elif success_rate > 0.95:  # mais de 95% de sucesso
    delay_multiplier *= 0.9  # pode acelerar
    parallel_workers += 1

2. Distribuição ao longo do dia

Faça parsing durante as horas de pico de atividade de usuários reais (noite nos EUA, 18:00-22:00 EST). Nesse horário, seu tráfego se mistura com o legítimo, e o sistema anti-bot é menos agressivo. À noite (2:00-6:00 EST), a proteção pode ser mais rigorosa, pois há menos usuários reais.

3. Aquecer endereços IP

Antes de iniciar o parsing em massa, "aqueça" os endereços IP com solicitações legítimas: abra a página inicial, algumas categorias, faça uma busca. Isso cria um histórico de atividade e aumenta a pontuação de confiança do IP.

# Sequência de aquecimento para um novo IP
1. GET https://www.walmart.com/  # página inicial
2. Atraso de 3-5 seg
3. GET https://www.walmart.com/browse/electronics  # categoria
4. Atraso de 4-7 seg
5. GET https://www.walmart.com/search?q=laptop  # busca
6. Atraso de 3-6 seg
# Agora você pode fazer parsing dos produtos alvo

Erro crítico: Não use o mesmo Referer para todas as solicitações. Se você está fazendo parsing de 1000 produtos e todos têm o mesmo Referer no cabeçalho — isso é um padrão óbvio de bot. Varie o Referer com base na página anterior.

```