A Amazon é o maior conjunto de dados de produtos da web aberta, e fazer scraping dela, preços, avaliações, rankings, disponibilidade, alimenta monitoramento de preços, análise de digital shelf, pesquisa de mercado e inteligência competitiva. Também é um dos sites mais agressivamente defendidos que você vai encontrar ao apontar um scraper. Erre a configuração e você vai se deparar com a página “Robot Check”, um 503, ou dados do país errado em poucas requisições.
Este é um guia prático para fazer isso corretamente: o que você pode extrair de uma página de produto da Amazon, por que isso quebra sem a infraestrutura certa, e como coletar os dados de forma limpa através de proxies residenciais. Resumindo: a Amazon é dividida geograficamente por marketplace e é dura com bots, então você precisa buscar os dados como um comprador real no país certo, que é exatamente para isso que servem os proxies residenciais.
O que você pode extrair de uma página de produto da Amazon
Um anúncio da Amazon é denso em dados públicos e estruturados. Os campos que as equipes mais coletam:
- Preço e informações de ofertas — preço atual, preço de tabela, descontos e cupons.
- Disponibilidade e buy box — em estoque ou não, e qual vendedor ganha a buy box.
- Best Sellers Rank (BSR) — a classificação da Amazon dentro de uma categoria, um indicador de demanda.
- Avaliações e resenhas — classificação em estrelas, número de avaliações e texto das resenhas.
- Detalhes do produto — título, tópicos, descrição, imagens, variações e especificações.
- Informações do vendedor — o vendedor e detalhes de envio da oferta.
Tudo isso está na página pública. O detalhe é que a Amazon decide qual página mostrar a você com base em onde você parece estar e se você parece um comprador real.
Por que a Amazon é difícil: é um problema de proxy
Três propriedades da Amazon transformam o scraping dela em um problema de acesso que recai sobre a camada de proxy.
A Amazon é dividida por marketplace e geopersonalizada. A Amazon opera marketplaces separados por país, amazon.com, amazon.de, amazon.co.uk, amazon.co.jp, e cada um tem preços, disponibilidade, vendedores e até catálogo diferentes. Além disso, um único marketplace personaliza preço e entrega de acordo com a localização do comprador. Buscar amazon.de a partir de um IP dos EUA pode resultar em um redirecionamento, uma experiência diferente, ou disponibilidade que um comprador alemão nunca veria. Para capturar um marketplace com precisão, você precisa vir daquele país, que é para isso que serve o direcionamento por país e cidade.
A Amazon se defende fortemente contra bots. IPs de datacenter são identificados rapidamente e recebem o CAPTCHA “Robot Check”, um 503, ou limitação de taxa, então você registra a versão do bot, não a página do comprador. (Por que scrapers são bloqueados cobre a mecânica.) IPs residenciais carregam confiança de usuário real, então a Amazon te entrega o anúncio de verdade.
A cobertura é de alto volume e repetida. Monitorar muitos ASINs em vários marketplaces todos os dias representa muitas requisições. A partir de poucos IPs você atinge limites de taxa rapidamente e obtém uma amostra parcial, cheia de bloqueios. Um pool rotativo grande é o que mantém a coleta completa.
A solução para os três problemas é a mesma: buscar a partir de IPs residenciais que correspondam ao país do marketplace, rotacionando em escala.
Passo 1: rotear através de um IP residencial no país certo
No gateway da Shifter, você escolhe um país codificando-o no nome de usuário do proxy, um único endpoint, sem listas de IPs. Combine o país do proxy com o domínio do marketplace: amazon.com a partir de um IP dos EUA, amazon.de a partir de um IP alemão.
# amazon.com como um comprador dos EUAcurl -x customer-USERNAME-country-us:PASSWORD@p.shifter.io:443 \ "https://www.amazon.com/dp/B0EXAMPLE"
# amazon.de como um comprador alemãocurl -x customer-USERNAME-country-de:PASSWORD@p.shifter.io:443 \ "https://www.amazon.de/dp/B0EXAMPLE"Todo produto tem um ASIN estável (o código B0... na URL /dp/ASIN), então uma vez que você tenha sua lista de ASINs, o padrão de URL é previsível entre marketplaces.
Passo 2: buscar e parsear em código
Você raramente precisa de um navegador para dados de produtos da Amazon, a maior parte está no HTML inicial, então um cliente HTTP simples é mais rápido e muito mais barato em termos de largura de banda. Aqui está a estrutura em Python (veja proxies residenciais com Python para a configuração completa do cliente):
import os, requestsfrom bs4 import BeautifulSoup
USER, PASS = os.environ["SHIFTER_USER"], os.environ["SHIFTER_PASS"]GATEWAY = "p.shifter.io:443"
def proxy(country="us"): url = f"http://{USER}-country-{country}:{PASS}@{GATEWAY}" return {"http": url, "https": url}
def scrape_product(asin, country="us", tld="com"): url = f"https://www.amazon.{tld}/dp/{asin}" headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "Accept-Language": "en-US,en;q=0.9", "Accept-Encoding": "gzip, br", } r = requests.get(url, headers=headers, proxies=proxy(country), timeout=30) r.raise_for_status() soup = BeautifulSoup(r.text, "html.parser") title = soup.select_one("#productTitle") price = soup.select_one(".a-price .a-offscreen") rating = soup.select_one("#acrPopover") return { "asin": asin, "title": title.get_text(strip=True) if title else None, "price": price.get_text(strip=True) if price else None, "rating": rating["title"].strip() if rating and rating.has_attr("title") else None, }
print(scrape_product("B0EXAMPLE", country="us", tld="com"))Duas coisas importam mais do que os seletores: envie um User-Agent realista e um Accept-Language que correspondam ao país do seu proxy, e espere que a marcação da Amazon mude, então trate cada seletor como opcional e valide o que você extrai. Para resenhas, solicite as páginas de resenhas e pagine; para o BSR, geralmente está na seção “Product information” / detalhes.
Passo 3: rotacionar, e manter sessões onde ajuda
- Rotacione por requisição para scraping amplo de catálogo em muitos ASINs, omita qualquer id de sessão para que cada requisição receba um IP novo.
- Mantenha uma sessão fixa quando você paginar pelas resenhas de um único produto ou um fluxo de múltiplas etapas, para que a sequência pareça a de um único comprador. Adicione
-sid-<id>-ttl-<seconds>ao nome de usuário.
Como a qualidade do IP determina com que frequência você vê a página real em vez de um Robot Check, entender a reputação de IP ajuda você a manter a coleta limpa.
Passo 4: lidar com bloqueios e manter a largura de banda baixa
Quando a Amazon entrega um CAPTCHA/Robot Check ou um 503, não insista, rotacione para um IP novo, recue e tente novamente. Bloqueios consistentes (não ocasionais) apontam para qualidade de IP ou comportamento de requisição, abordado em como evitar ser bloqueado ao fazer scraping.
Se uma página realmente precisa de JavaScript e você recorre a um navegador, bloqueie imagens, mídia e fontes para não pagar por GB por pixels que você nunca vai parsear, a técnica está em como reduzir custos de largura de banda de proxy. Para a maioria dos campos de produtos da Amazon, o HTTP simples é suficiente e o mais barato.
Usando isso de forma responsável
Faça scraping apenas de dados públicos de produtos, anúncios, preços, avaliações e texto de resenhas que qualquer comprador possa ver, e evite dados pessoais, identidades de avaliadores e qualquer informação pessoal anexada às resenhas não são um alvo válido. Respeite os termos e limites de taxa da Amazon, não degrade o site, e esteja ciente de que os termos de serviço da Amazon restringem o acesso automatizado, então mantenha a coleta a dados públicos e busque orientação jurídica para qualquer coisa incerta (veja o web scraping é legal). Um proxy muda de qual IP uma requisição vem, não se você deveria estar fazendo essa requisição; nossa política de uso aceitável é a fonte definitiva sobre o que é permitido na Shifter.
Perguntas frequentes
Posso fazer scraping da Amazon sem proxies? Não de forma confiável em qualquer escala. A Amazon identifica rapidamente tráfego de datacenter e de IP repetido com CAPTCHAs e 503s, e você só conseguiria ver o marketplace de um único país. Proxies residenciais permitem que você busque dados como um comprador real em cada país de destino.
Por que preciso que o país do proxy corresponda ao marketplace?
Porque os marketplaces da Amazon são por país e geopersonalizados. Buscar amazon.de a partir de um IP dos EUA pode acionar redirecionamentos ou mostrar dados que um comprador alemão não veria. Combine o país do IP com o domínio (amazon.de a partir de um IP alemão) para dados precisos.
Preciso de um navegador headless para a Amazon? Geralmente não. A maioria dos campos de produtos, preço, título, avaliação, disponibilidade, está no HTML inicial, então uma requisição HTTP simples é mais rápida e muito mais barata em termos de largura de banda. Reserve um navegador para páginas genuinamente dependentes de JavaScript.
Proxies residenciais ou de datacenter para a Amazon? Residenciais. A Amazon detecta e bloqueia IPs de datacenter agressivamente, então datacenter te dá Robot Checks e 503s. IPs residenciais veem o anúncio real e geograficamente preciso que um comprador de verdade veria.
Fazer scraping da Amazon é legal? Dados públicos de produtos são geralmente voltados ao público, e coletá-los é amplamente aceitável quando feito de forma responsável, respeitando termos e limites de taxa e evitando dados pessoais. Os termos de serviço da Amazon restringem o acesso automatizado, então mantenha isso a dados públicos e busque orientação jurídica para qualquer coisa incerta. Um proxy não muda a legalidade da atividade subjacente.
Conclusão
A Amazon é uma mina de dados públicos de produtos, mas é dividida por marketplace, geopersonalizada, e um dos sites mais difíceis de fazer scraping sem ser bloqueado. A receita é direta: rotear através de um IP residencial que corresponda ao país do marketplace, buscar o HTML com um cliente realista, parsear de forma defensiva, rotacionar em escala, e lidar com Robot Checks trocando de IP em vez de insistir. Faça isso e você obtém os preços, resenhas e rankings reais que um comprador vê, em cada marketplace que você monitora.
O elemento que faz toda a diferença é a qualidade do IP, IPs residenciais limpos significam o anúncio real em vez de um Robot Check. Uma rede de proxies residenciais de qualidade é a camada de acesso que torna o scraping da Amazon confiável, e é a mesma base por trás do monitoramento de preços e da análise de digital shelf. A página de preços tem os planos por GB para testar contra os ASINs e marketplaces que importam para você.