A coleta de dados públicos e não pessoais, como preços de tabela, é geralmente tratada de maneira diferente do acesso a dados privados ou restritos por login; no entanto, o panorama jurídico varia de acordo com a jurisdição, e os termos da Amazon restringem o acesso automatizado. Extraia apenas páginas públicas, evite informações de identificação pessoal (PII), limite o tráfego e solicite uma análise jurídica para uso comercial ou em grande escala.
Como extrair os preços da Amazon sem ser bloqueado
Sim, é possível extrair os preços da Amazon de páginas públicas de produtos, e a maneira mais confiável de fazer isso é enviar solicitações a partir de IPs residenciais no país do comprador, espaçar essas solicitações e extrair o preço e a “buy-box” da página renderizada. A parte difícil não é extrair o número da página. É permanecer sem ser bloqueado por tempo suficiente para extraí-lo nas próximas mil páginas. A Amazon trata o tráfego automatizado agressivo como uma ameaça; por isso, um scraper mal elaborado acaba sendo limitado, recebendo um CAPTCHA ou tendo seu IP bloqueado após algumas centenas de solicitações.
Este guia explica por que é difícil fazer scraping na Amazon, apresenta uma abordagem que se mostra eficaz em grandes volumes, inclui um breve esboço de código e aborda as questões legais que devem ser respeitadas. Ele também aborda em que situações você deve evitar completamente o scraping e recorrer à API oficial da Amazon.
Pontos principais
- A extração de preços da Amazon é viável para páginas públicas, mas o ritmo das solicitações e a qualidade do endereço IP determinam se você permanecerá sem bloqueios.
- Os endereços IP de data centers são bloqueados rapidamente; os endereços IP residenciais no país de destino visualizam o preço real localizado e a caixa de compra.
- O vencedor da “buy-box”, o preço e a disponibilidade variam de acordo com a região geográfica; portanto, as consultas direcionadas geograficamente são importantes para garantir a precisão.
- Elementos de preço renderizados (carregados por JavaScript) geralmente exigem uma etapa de renderização “headless”, e não apenas a análise do HTML bruto.
- Para necessidades do tipo catálogo, a API oficial de Publicidade de Produtos é a opção mais simples; a extração de dados preenche as lacunas que ela deixa.
A coleta de preços da Amazon é legal e viável?
As páginas públicas de listagem de produtos não exigem login, e o preço exibido nelas é informação pública. Ler esses dados com um cliente automatizado é, tecnicamente, simples. O que torna isso difícil do ponto de vista operacional é que a Amazon se defende ativamente contra bots, e o tráfego automatizado representa atualmente a maior parte do tráfego recebido por todos os grandes sites. O Relatório Imperva sobre Bots Maliciosos de 2025 (Imperva, “Relatório sobre Bots Maliciosos de 2025”) constatou que o tráfego automatizado ultrapassou a atividade humana pela primeira vez em uma década, atingindo 51% de todo o tráfego da web, sendo que os bots maliciosos representam 37%. Sites do porte da Amazon investem pesadamente para distinguir esses bots dos consumidores.
Portanto, a questão não é “posso analisar o preço?”, mas sim “posso continuar analisando-o em milhares de produtos sem que o processo seja interrompido?”. O restante deste guia trata dessa segunda questão. Para conhecer os mecanismos de nível de linguagem relacionados à obtenção e à análise de dados, consulte o guia complementar sobre como extrair preços com Python.
Por que é difícil fazer scraping na Amazon
Várias defesas se acumulam ao mesmo tempo.
Limitação de taxa. Se você enviar muitas solicitações a partir de um único endereço IP em um intervalo muito curto, a Amazon reduzirá a velocidade ou bloqueará suas respostas. O limite não é divulgado e está sujeito a variações; portanto, um scraper que funcionava ontem pode ser bloqueado hoje.
CAPTCHAs. Quando o tráfego parece automatizado, a Amazon exibe uma página de desafio em vez do produto. Seu analisador, então, lê um CAPTCHA, e não um preço, e registra silenciosamente dados irrelevantes, a menos que o senhor detecte a troca.
Solicitações suspeitas repetidas provenientes de um mesmo endereço também resultam no bloqueio definitivo desse endereço. Os intervalos de IPs de data centers são fáceis de identificar e costumam ser previamente sinalizados; portanto, um scraper executado a partir de uma VM na nuvem tende a falhar logo no início. Na prática, os IPs de data centers tendem a acionar um CAPTCHA ou um bloqueio imediato muito mais cedo do que as sessões residenciais com correspondência geográfica nas páginas de produtos da Amazon.
A geografia acrescenta mais uma complicação. O preço e o vencedor da “buy box” não são fixos: eles variam de acordo com o país do comprador, às vezes com a cidade, e ao longo do tempo. Uma consulta feita a partir de uma localização incorreta retorna um preço que nenhum cliente real do seu mercado-alvo veria, o que corrompe silenciosamente seu conjunto de dados.
Conteúdo dinâmico. Algumas partes da página, incluindo alguns elementos relacionados a preços e disponibilidade, são carregadas por meio de JavaScript após o HTML inicial. Uma consulta direta ao HTML pode retornar uma estrutura vazia, sem nenhum preço.
Uma abordagem que se mantém viável em grande escala
O objetivo é parecer com o tráfego normal de compradores e visualizar a página que um comprador realmente veria.
Organize suas solicitações
Não sobrecarregue o site. Insira intervalos entre as solicitações, randomize-as e limite a simultaneidade. Um ritmo constante, semelhante ao de um ser humano, é a defesa mais econômica contra a limitação de taxa e os CAPTCHAs. Se precisar de muitos dados, distribua-os ao longo do tempo, em vez de enviá-los de forma concentrada.
Roteie o tráfego por meio de proxies residenciais no país de destino
É aqui que a maioria dos scrapers tem sucesso ou fracassa. Os IPs residenciais pertencem a conexões de consumidores reais; portanto, as solicitações provenientes deles parecem provenientes de compradores comuns, em vez de tráfego de data center. O roteamento por meio de IPs residenciais no país em que você está definindo os preços também retorna o preço, a moeda e a “buy-box” localizados corretamente. As sessões rotativas distribuem as solicitações por vários endereços, de modo que nenhum IP isolado acumule uma taxa de solicitações suspeita, enquanto uma sessão fixa mantém o mesmo IP para um fluxo curto de várias etapas (por exemplo, carregar uma página de produto e, em seguida, uma variante relacionada) quando a continuidade é importante.
A rede de proxies residenciais da Massive abrange mais de 195 países, oferecendo segmentação geográfica por país e cidade via HTTP, HTTPS e SOCKS5, com sessões rotativas ou fixas, o que atende diretamente a essas duas necessidades: precisão localizada e distribuição de solicitações.
Trate a página gerada
Como os elementos de preço podem ser carregados via JavaScript, planeje uma etapa de renderização. Uma opção é um navegador headless que você mesmo executa. A outra é um serviço de renderização que carrega a página e retorna o conteúdo finalizado, de preferência como Markdown limpo, para que você gaste menos tempo lidando com seletores HTML instáveis. A Web Render API da Massive inclui um endpoint de navegação que retorna páginas renderizadas como Markdown, o que elimina a manutenção do navegador sem interface gráfica e a sobrecarga da análise de HTML em uma única etapa.
Caso deseje passar diretamente de uma URL para o Markdown em seus próprios agentes de IA, é possível ignorar completamente a camada de análise: chame diretamente a Web Render API da Massive ou configure o MCP Server da Massive de forma que um agente busque a própria página renderizada e formatada em Markdown e analise a linha de preço dentro do contexto.
Analise o preço e a caixa de compra
Seja qual for o método de recuperação de dados que você utilizar, isole o preço e a disponibilidade da “buy-box”, em vez do primeiro valor em dólares exibido na página. As páginas da Amazon contêm muitos preços (preço de tabela, outros vendedores, itens relacionados); portanto, concentre-se especificamente no bloco da “buy-box”. Verifique cada valor: um preço nulo, zero ou muito diferente do esperado geralmente é um sinal de que você encontrou um CAPTCHA ou uma renderização vazia, e não uma queda real no preço.
Um esboço conciso de código
O padrão abaixo ilustra o funcionamento de um scraper educado, com roteamento por proxy. Ele obtém uma página renderizada por meio de um proxy residencial e, em seguida, extrai o preço da “buy-box”.
import os, time, random, requests
from bs4 import BeautifulSoup
# Proxy residencial Massive: as credenciais são inseridas na URL no formato usuário:senha.
_proxy = (
f"https://{os.environ['MASSIVE_PROXY_USERNAME']}:"
f"{os.environ['MASSIVE_API_KEY']}@network.joinmassive.com:65535"
)
PROXY = {"http": _proxy, "https": _proxy}
HEADERS = {"User-Agent": "Mozilla/5.0 (...)", "Accept-Language": "en-US,en"}
def get_price(asin, country="us"):
url = f"https://www.amazon.com/dp/{asin}"
resp = requests.get(url, headers=HEADERS, proxies=PROXY, timeout=30)
if "captcha" in resp.text.lower() or resp.status_code != 200:
return None # desafiado ou bloqueado; tente novamente mais tarde usando um novo IP
soup = BeautifulSoup(resp.text, "html.parser")
el = soup.select_one("#corePrice_feature_div .a-offscreen")
if not el:
return None # preço renderizado via JS ou alteração no layout
return el.get_text(strip=True)
for asin in ["B0XXXXX1", "B0XXXXX2"]:
price = get_price(asin)
print(asin, price)
time.sleep(random.uniform(2, 6)) # ritmo aleatório, semelhante ao de um ser humano
Este código é deliberadamente minimalista. Um scraper de produção inclui tentativas repetidas com backoff, detecção de CAPTCHA que redireciona para um endereço IP novo, uma etapa de renderização para preços carregados via JavaScript e validação antes de armazenar qualquer dado. Para transformar isso em um serviço agendado e monitorado, veja como criar um sistema de monitoramento de preços.
Manter-se do lado certo da linha
Extraia apenas páginas públicas. Não faça login, não contorne a autenticação e não colete dados pessoais. Preço, título e disponibilidade em uma listagem pública não constituem Informações de Identificação Pessoal (PII). Respeite os termos estabelecidos pelo site e sua robots.txt, limite o seu tráfego para não prejudicar o serviço prestado a outros usuários e mantenha sua coleta restrita e voltada para um objetivo específico, em vez de coletar tudo o que estiver ao seu alcance. Os termos da Amazon restringem o acesso automatizado; portanto, trate a extração de dados como uma ferramenta para o monitoramento de preços públicos em uma frequência razoável, e não para a cópia em massa do catálogo. A legislação nesse âmbito varia de acordo com a jurisdição e está em constante evolução; portanto, se você estiver operando em grande escala ou comercialmente, consulte um advogado para analisar seu uso específico.
Quando utilizar a API oficial em vez disso
A Amazon oferece a API de Publicidade de Produtos (PA-API) 5.0, que retorna preços e dados de produtos por meio de uma interface compatível. Se ela atender às suas necessidades, essa é a opção mais simples: sem CAPTCHAs, sem bloqueios de IP e sem manutenção de renderização.
O problema está no acesso e na taxa de transferência. A PA-API exige uma conta do Programa de Parceria ativa vinculada a vendas, e as novas credenciais começam com um limite bastante restrito. A documentação para desenvolvedores da Amazon (Amazon, “Product Advertising API 5.0: API Rates”, 2026) afirma que as novas credenciais estão limitadas a uma solicitação por segundo e 8.640 solicitações por dia durante o primeiro período de 30 dias, com os limites aumentando apenas à medida que o senhor gera receita por indicação. Se ultrapassar esses limites, você receberá um 429 TooManyRequests erro.
Uma regra prática:
- Utilize a PA-API Quando o(a) senhor(a) possui uma conta Associates qualificada, o seu volume corresponde à capacidade de processamento, e os campos de que o(a) senhor(a) precisa constam na resposta.
- Raspar quando não tiver acesso à API, precisar de dados que a API não disponibiliza (determinadas visualizações da “buy-box” ou específicas de uma região) ou precisar de um preço exatamente como ele é exibido para um comprador em um determinado país.
Muitas equipes utilizam ambas as opções: a API para o que ela abrange de forma clara e o scraping para preencher as lacunas. Esse mesmo raciocínio de “criar ou adquirir” se aplica em monitoramento de preços de varejo e a prática mais ampla de monitoramento de preços da concorrência.
Fontes
- Imperva. “Relatório sobre bots maliciosos de 2025”. 2025. https://www.imperva.com/resources/resource-library/reports/2025-bad-bot-report/ (consultado em 15 de junho de 2026)
- Amazon. “Product Advertising API 5.0: Limites de uso da API.” 2026. https://webservices.amazon.com/paapi5/documentation/troubleshooting/api-rates.html (consultado em 15 de junho de 2026)
A precisão dos preços depende de visualizar a página exatamente como um comprador real a vê. Rede de proxies residenciais da Massive oferece endereços IP residenciais com segmentação geográfica em mais de 195 países, com sessões rotativas ou fixas, além da Web Render API que retorna páginas renderizadas em Markdown limpo, para que você possa monitorar os preços da Amazon na localização e com a frequência que seu caso de uso exigir.
Perguntas frequentes
Os intervalos de IPs de data centers são fáceis de identificar e costumam ser previamente sinalizados como não residenciais; por isso, as solicitações provenientes deles parecem automatizadas. Os IPs residenciais provêm de conexões reais de consumidores e se misturam ao tráfego comum de compradores, razão pela qual permanecem ativos por mais tempo e também exibem o preço localizado correto.
Às vezes. Partes da página, incluindo alguns elementos de preço, são carregadas por meio de JavaScript; portanto, uma consulta de HTML bruto pode retornar sem o preço. Você mesmo pode executar um navegador sem interface gráfica ou utilizar um serviço de renderização que retorne a página finalizada (uma saída em Markdown limpa reduz o trabalho de análise) em vez de manter a automação do navegador.
Não há um número publicado, e o limite varia. A prática recomendada é espaçar as solicitações com atrasos aleatórios, limitar a simultaneidade e alternar os endereços IP residenciais, para que nenhum endereço específico atinja uma taxa de solicitações suspeita. Distribuir uma tarefa de grande porte ao longo do tempo é mais eficaz do que realizá-la de forma concentrada.
