No fim de semana passado, virei uma panela inteira de café tentando extrair a página de Best Sellers da Amazon de quatro jeitos diferentes. Dois funcionaram muito bem, um quase fez meu IP ser bloqueado e um levou literalmente um clique. Aqui está tudo o que aprendi.
A Amazon é um monstro do varejo online — 600 milhões de listagens de produtos, mais de 310 milhões de contas ativas de clientes e um sistema de Best Sellers Rank (BSR) que é atualizado de hora em hora. Se você faz pesquisa de produtos para FBA, análise de preços da concorrência ou só quer identificar tendências antes dos seus concorrentes, os dados de Best Sellers valem ouro.
Mas tirar esses dados da Amazon e colocá-los em uma planilha? Aí é que a coisa fica interessante. Testei requests + BeautifulSoup, Selenium, uma API de scraping e Thunderbit (nosso web scraper com IA e sem código) para descobrir qual abordagem realmente entrega resultado — e quais delas fazem você encarar uma tela de CAPTCHA.
O que são os Amazon Best Sellers e por que isso importa?
O Amazon Best Sellers Rank (BSR) é o ranking em tempo real da Amazon, que classifica produtos por volume de vendas dentro de cada categoria. Pense nele como uma disputa de popularidade, atualizada de hora em hora, com base em dados de vendas recentes e históricos. A própria Amazon explica assim:
"O cálculo do Amazon Best Sellers é baseado nas vendas da Amazon e é atualizado de hora em hora para refletir as vendas recentes e históricas de cada item vendido na Amazon." — Amazon Seller Central
A página de Best Sellers mostra os 100 melhores produtos por categoria, divididos em duas páginas com 50 itens cada. A página 1 cobre os rankings #1–50, e a página 2 cobre #51–100. A Amazon confirmou que visualizações de página e avaliações de clientes NÃO influenciam o BSR — ele é determinado exclusivamente pelas vendas.
Quem precisa desses dados? Vendedores de e-commerce em busca de produtos para FBA, equipes de vendas montando inteligência competitiva, times de operações acompanhando tendências de preço e pesquisadores de mercado monitorando o crescimento de categorias. Na prática, qualquer pessoa que vende na Amazon ou compete com ela acaba precisando desses dados em uma planilha.
Por que extrair Amazon Best Sellers com Python?
Pesquisa manual de produtos consome tempo demais. Um estudo da McKinsey mostrou que funcionários gastam 9,3 horas por semana apenas procurando e reunindo informações. Para equipes de e-commerce, isso vira horas clicando em páginas da Amazon, copiando nomes e preços de produtos e colando tudo em planilhas — só para repetir o processo na semana seguinte.
Veja rapidamente os casos de uso que tornam a extração de Best Sellers realmente útil:
| Caso de uso | O que você obtém | Quem se beneficia |
|---|---|---|
| Pesquisa de produtos para FBA | Identificar produtos com alta demanda e baixa concorrência por BSR e número de avaliações | Vendedores da Amazon, dropshippers |
| Precificação competitiva | Acompanhar mudanças de preço nos principais produtos da sua categoria | Equipes de e-commerce, analistas de preços |
| Monitoramento de tendências de mercado | Identificar categorias em alta e mudanças sazonais | Gerentes de produto, pesquisadores de mercado |
| Geração de leads | Criar listas de marcas mais vendidas e suas linhas de produtos | Equipes de vendas, prospecção B2B |
| Análise da concorrência | Comparar seus produtos com os líderes da categoria | Brand managers, equipes de estratégia |
O retorno é real: uma pesquisa da Salesforce com 2.700 profissionais de comércio mostrou que ferramentas de IA economizam, em média, 6,4 horas por semana para profissionais de e-commerce. E vendedores que usam monitoramento automatizado de preços ficam com o Buy Box 67% do tempo, contra 42% dos rastreadores manuais — um aumento de 37% nas vendas impulsionado por reações mais rápidas às mudanças de preço.
4 maneiras de extrair Amazon Best Sellers com Python: comparação rápida
Antes de entrar nos tutoriais passo a passo, aqui vai a comparação lado a lado que eu gostaria de ter tido antes de começar os testes. Esta tabela ajuda a escolher o método certo para o seu cenário:
| Critério | requests + BS4 | Selenium | API de scraping (ex.: Scrape.do) | Thunderbit (sem código) |
|---|---|---|---|---|
| Dificuldade de configuração | Média | Alta (driver, navegador) | Baixa (API key) | Muito baixa (extensão Chrome) |
| Lida com lazy loading | Não | Sim (simulação de rolagem) | Sim (HTML renderizado) | Sim (a IA lida com a renderização) |
| Resistência anti-bot | Baixa (bloqueio de IP) | Média (detectável) | Alta (proxies rotativos) | Alta (modo cloud + navegador) |
| Manutenção | Alta (seletores quebram) | Alta (atualizações do driver + seletores) | Baixa | Muito baixa (a IA se adapta às mudanças de layout) |
| Custo | Grátis | Grátis | Pago (por requisição) | Plano grátis + planos pagos |
| Melhor para | Coletas pontuais, aprendizado | Páginas pesadas em JS, login | Escala / produção | Não programadores, pesquisa rápida, monitoramento recorrente |
Se você quer aprender fundamentos de scraping em Python, comece pelo Método 1 ou 2. Se precisa de confiabilidade em escala de produção, vá de Método 3. Se quer resultados com um único clique, sem escrever código, pule direto para o Método 4.
Antes de começar
- Dificuldade: iniciante a intermediário (dependendo do método)
- Tempo necessário: cerca de 15 minutos para o Thunderbit, ~45 minutos para os métodos em Python
- O que você vai precisar: Python 3.8+ (para os Métodos 1–3), navegador Chrome, Thunderbit Chrome Extension (para o Método 4) e uma URL de categoria Amazon Best Sellers
Método 1: extrair Amazon Best Sellers com requests + BeautifulSoup
Esta é a abordagem leve e amigável para iniciantes — sem automação de navegador, só requisições HTTP e análise de HTML. E foi a que mais me ensinou sobre as defesas anti-scraping da Amazon.
Passo 1: configurar o ambiente
Instale os pacotes necessários:
pip install requests beautifulsoup4 pandas
Depois, organize os imports:
import requests
from bs4 import BeautifulSoup
import pandas as pd
import random
import time
Passo 2: enviar uma requisição com headers realistas
A Amazon bloqueia requisições que parecem de bot. A defesa mais básica é incluir um User-Agent que imite um navegador real. Aqui vai um exemplo com uma lista de User-Agent atuais e realistas (com base em Geekflare, março de 2026):
USER_AGENTS = [
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:149.0) Gecko/20100101 Firefox/149.0",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 15.7; rv:149.0) Gecko/20100101 Firefox/149.0",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 15_7_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Safari/605.1.15",
]
headers = {"User-Agent": random.choice(USER_AGENTS)}
url = "https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/"
response = requests.get(url, headers=headers)
print(response.status_code) # Deve ser 200
Se vier status 200, ótimo. Se aparecer 503 ou você for redirecionado para uma página de CAPTCHA, a Amazon identificou sua requisição.
Passo 3: analisar os dados dos produtos com BeautifulSoup
Inspecione o HTML da página da Amazon com as DevTools do navegador (botão direito → Inspecionar). Os contêineres dos produtos usam o ID gridItemRoot. Dentro de cada contêiner, você encontra nome, preço, avaliação e URL.
soup = BeautifulSoup(response.text, "html.parser")
products = []
for item in soup.find_all("div", id="gridItemRoot"):
title_tag = item.find("div", class_="_cDEzb_p13n-sc-css-line-clamp-3_g3dy1")
price_tag = item.find("span", class_="_cDEzb_p13n-sc-price_3mJ9Z")
link_tag = item.find("a", class_="a-link-normal")
title = title_tag.get_text(strip=True) if title_tag else "N/A"
price = price_tag.get_text(strip=True) if price_tag else "N/A"
url = "https://www.amazon.com" + link_tag["href"] if link_tag else "N/A"
products.append({"Title": title, "Price": price, "URL": url})
Aviso: os nomes de classe com prefixo
_cDEzb_são hashes de módulos CSS que a Amazon recria periodicamente. O IDgridItemRoote a classea-link-normalsão mais estáveis, mas sempre verifique os seletores com as DevTools antes de rodar o scraper.
Passo 4: exportar para CSV
df = pd.DataFrame(products)
df.to_csv("amazon_best_sellers.csv", index=False)
print(f"Extraídos {len(products)} produtos")
O que esperar — e o que dá errado
No meu teste, esse método trouxe cerca de 30 produtos em vez de 50. Isso não é erro no código — é o lazy loading da Amazon. Apenas ~30 produtos aparecem no carregamento inicial da página; os demais surgem após rolar a página, o que exige execução de JavaScript que o requests não consegue lidar.
Outras limitações:
- Bloqueios de IP acontecem rápido sem rotação de proxy (fui bloqueado depois de cerca de 15 requisições em sequência rápida)
- Os seletores CSS quebram quando a Amazon muda o layout da página — e isso acontece com frequência
- Não há tratamento de paginação pronto para uso
Para aprender scraping em Python, essa abordagem é ótima. Para uso em produção, é frágil.
Método 2: extrair Amazon Best Sellers com Selenium
O Selenium resolve o problema do lazy loading executando um navegador real — mais pesado para configurar, mas captura os 50 produtos por página.
Passo 1: instalar o Selenium
pip install selenium pandas
Boa notícia: a partir do Selenium 4.6+, você não precisa mais do webdriver-manager. O Selenium Manager cuida do download do driver automaticamente.
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time
import pandas as pd
options = Options()
options.add_argument("--headless=new")
options.add_argument("--window-size=1920,1080")
options.add_argument("--disable-blink-features=AutomationControlled")
driver = webdriver.Chrome(options=options)
A flag --headless=new (introduzida no Chrome 109+) usa o mesmo pipeline de renderização do Chrome visível, o que dificulta a detecção pela Amazon.
Passo 2: rolar para carregar o conteúdo preguiçoso
Este é o passo que faz o Selenium valer o esforço extra de configuração. A página de Best Sellers da Amazon carrega só ~30 produtos no início — o resto aparece após a rolagem.
def scroll_page(driver, scrolls=5, delay=2):
for _ in range(scrolls):
driver.find_element(By.TAG_NAME, "body").send_keys(Keys.PAGE_DOWN)
time.sleep(delay)
driver.get("https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/")
time.sleep(3)
scroll_page(driver)
Depois da rolagem, os 50 produtos devem estar renderizados no DOM. Descobri que 5 rolagens com PAGE_DOWN e atraso de 2 segundos eram suficientes, mas isso pode variar conforme sua conexão.
Passo 3: extrair os dados dos produtos
items = driver.find_elements(By.ID, "gridItemRoot")
products = []
for item in items:
try:
title = item.find_element(By.CSS_SELECTOR, "div._cDEzb_p13n-sc-css-line-clamp-3_g3dy1").text
except:
title = "N/A"
try:
price = item.find_element(By.CSS_SELECTOR, "span._cDEzb_p13n-sc-price_3mJ9Z").text
except:
price = "N/A"
try:
url = item.find_element(By.CSS_SELECTOR, "a.a-link-normal").get_attribute("href")
except:
url = "N/A"
products.append({"Title": title, "Price": price, "URL": url})
Colocar cada extração em try/except é importante — alguns produtos podem estar fora de estoque ou sem certos campos, e você não quer que um único elemento com problema derrube toda a extração.
Passo 4: lidar com paginação
A Amazon divide os 100 Best Sellers em duas páginas com estruturas de URL diferentes:
urls = [
"https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/",
"https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/ref=zg_bs_pg_2_electronics?_encoding=UTF8&pg=2"
]
all_products = []
for url in urls:
driver.get(url)
time.sleep(3)
scroll_page(driver)
# ... extrair os produtos como acima ...
all_products.extend(products)
driver.quit()
O que esperar
No meu teste, o Selenium capturou os 50 produtos por página — uma vitória clara sobre requests + BS4. O lado negativo: demorou cerca de 45 segundos por página (incluindo os atrasos de rolagem), e ainda fui sinalizado depois de executar várias vezes sem rotação de proxy. O Selenium também pode ser detectado pelos sistemas anti-bot da Amazon, mesmo com as flags anti-detecção — para uso em escala séria, você vai precisar de medidas adicionais (veja o guia anti-bloqueio abaixo).
Outros pontos de dor:
- Incompatibilidades de versão do WebDriver ainda acontecem às vezes, embora o Selenium Manager tenha reduzido bastante esse problema
- Os seletores CSS precisam ser atualizados sempre que a Amazon muda o DOM
- O consumo de memória é alto — cada instância do navegador usa cerca de 200–400 MB de RAM
Método 3: extrair Amazon Best Sellers com uma API de scraping
APIs de scraping seguem a lógica de “deixe outra pessoa resolver os detalhes difíceis”. Serviços como Scrape.do, Oxylabs e ScrapingBee cuidam da rotação de proxies, da renderização de JavaScript e das medidas anti-bot — você só envia uma URL e recebe HTML ou JSON de volta.
Como funciona
Você envia a URL de destino para o endpoint da API. A API renderiza a página em um navegador real na infraestrutura dela, rotaciona proxies, lida com CAPTCHAs e devolve HTML limpo. Depois, você analisa o HTML retornado com BeautifulSoup como de costume.
Passo 1: enviar a requisição pela API
Aqui vai um exemplo usando Scrape.do (os preços começam em US$29/mês para 150.000 créditos, e 1 crédito = 1 requisição, independentemente da renderização):
import requests
from bs4 import BeautifulSoup
api_token = "YOUR_API_TOKEN"
target_url = "https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/"
api_url = f"https://api.scrape.do?token={api_token}&url={target_url}&render=true&geoCode=us"
response = requests.get(api_url)
soup = BeautifulSoup(response.text, "html.parser")
A partir daqui, a análise é igual ao Método 1 — mesmos seletores, mesma lógica de extração.
Realidade de preços
Veja quanto as principais APIs cobram por 1.000 requisições na Amazon, na melhor tarifa disponível:
| Fornecedor | Custo por 1.000 requisições | Observações |
|---|---|---|
| Scrape.do | ~US$0,19 | Tarifa fixa, sem multiplicadores de crédito |
| Oxylabs | ~US$1,80 | Multiplicador 5x para renderização JS |
| ScrapingBee | ~US$4,90 | Multiplicadores de 5–25x para recursos premium |
| Bright Data | US$5,00+ | Dados mais completos (686 campos/produto), mas mais lento (~66 s/requisição) |
Prós e contras
Prós: alta confiabilidade (~99% de taxa de sucesso na Amazon nos principais fornecedores), sem manutenção de driver, anti-bot tratado automaticamente, boa escalabilidade.
Contras: cobrança por requisição (os custos crescem em escala), ainda exige que você escreva o código de parsing e continua vulnerável a mudanças nos seletores CSS. Para 100.000 páginas por mês, a comparação de custos totais é dramática: construir internamente custa cerca de $1,98 milhão ao longo de três anos contra US$332 mil com um provedor de API — uma economia de 71%.
O ponto de equilíbrio costuma ficar entre 500 mil e 1 milhão de requisições por mês. Abaixo disso, a economia de tempo das APIs geralmente supera o custo.
Método 4: extrair Amazon Best Sellers com Thunderbit (sem precisar de Python)
Transparência total: eu trabalho na Thunderbit, então leia esta seção com esse contexto em mente. Dito isso, testei de verdade os quatro métodos em sequência, e a diferença no tempo até ter os dados prontos foi enorme.
Thunderbit é um web scraper com IA que funciona como extensão do Chrome. A ideia central é simples: em vez de escrever seletores CSS ou código Python, a IA lê a página e identifica quais dados devem ser extraídos. Para Amazon Best Sellers, o Thunderbit tem modelos prontos que funcionam com um clique.
Passo 1: instalar a extensão Thunderbit para Chrome
Acesse a Chrome Web Store e clique em "Adicionar ao Chrome". Crie uma conta gratuita — o plano grátis dá créditos suficientes para você testar.
Passo 2: abrir a página de Amazon Best Sellers
Abra qualquer página de categoria Amazon Best Sellers no Chrome. Por exemplo:
https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/
Passo 3: clicar em "One Click Extract"
Abra a barra lateral do Thunderbit e clique em "One Click Extract". A IA analisa a estrutura da página e identifica as colunas: Nome do produto, Preço, Avaliação, URL da imagem, Vendedor, URL do produto e Ranking. No meu teste, ela identificou todos os campos relevantes em cerca de 3 segundos.

Você pode renomear, remover ou adicionar colunas. Também pode incluir prompts personalizados de IA por campo — por exemplo, "categorize como Eletrônicos/Vestuário/Casa" para adicionar uma tag de categoria a cada produto.
Passo 4: clicar em "Scrape"
Clique no botão "Scrape". O Thunderbit preenche uma tabela estruturada com todos os dados dos produtos da página. No modo cloud, ele processa até 50 páginas ao mesmo tempo em paralelo, lidando automaticamente com lazy loading e paginação.
Passo 5: exportar de graça
Clique em "Export" e escolha o destino: Excel, Google Sheets, Airtable ou Notion. Todas as exportações são grátis em qualquer plano — sem cobranças ocultas.

O processo inteiro levou cerca de 90 segundos, desde abrir a página até ter uma planilha completa. Para comparação, o Método 1 levou cerca de 20 minutos (incluindo o debug do lazy loading), o Método 2 levou cerca de 35 minutos (incluindo a configuração do Selenium) e o Método 3 levou cerca de 15 minutos (incluindo a criação da conta na API).
Por que o Thunderbit funciona bem com a Amazon
Como a IA lê a página do zero a cada execução, ela se adapta automaticamente às mudanças de layout — sem seletores CSS para manter. Isso resolve diretamente uma das reclamações mais comuns em fóruns de scraping: "um web scraper básico não basta, você precisa criar tantos 'catches' para mudanças de elementos". Quando a Amazon altera o DOM (o que acontece com frequência), você não precisa atualizar nada.
O modo de scraping em cloud lida de forma transparente com rotação de proxy, renderização e medidas anti-bot. Para quem quer uma solução que simplesmente funciona, isso elimina toda a dor de cabeça com bloqueios.
Evite a manutenção de seletores Quando a Amazon muda o markup da página, seus seletores do BeautifulSoup quebram. A IA do Thunderbit relê a página em cada execução e identifica os campos novamente. Get Started Free
O guia anti-bloqueio: como evitar ser bloqueado pela Amazon
A detecção de bots da Amazon é agressiva. Durante os testes, meu IP foi bloqueado temporariamente, e usuários em fóruns relatam o mesmo: "erros por todo lado, a Amazon até começou a me redirecionar para a página inicial". Se você for pelo caminho do Python (Métodos 1–3), esta seção é essencial.
Aqui vai uma estratégia em camadas, da mais básica à mais avançada:
1. Alterne os User-Agent
Enviar sempre o mesmo User-Agent é um sinal de alerta. Use o conjunto de 5+ strings do exemplo do Método 1 e escolha uma aleatoriamente a cada requisição:
headers = {"User-Agent": random.choice(USER_AGENTS)}
2. Adicione atrasos aleatórios entre as requisições
Atrasos fixos são fáceis de detectar. Atrasos aleatórios são mais seguros:
time.sleep(random.uniform(2, 5))
Descobri que intervalos de 2 a 5 segundos entre requisições me mantiveram fora do radar em lotes pequenos (menos de 50 requisições). Para execuções maiores, aumente para 3 a 7 segundos.
3. Use rotação de proxies
Esse é o ponto mais importante. Benchmarks da Proxyway mostram que proxies residenciais têm, em média, ~94% de sucesso na Amazon, contra ~59% para proxies de datacenter — uma diferença de 35 pontos percentuais. O sistema de detecção da Amazon inclui fingerprint TLS, análise comportamental e limitação por IP, então IPs de datacenter são sinalizados em segundos.
Proxies residenciais custam mais caro (US$2–US$12 por GB, dependendo do fornecedor), mas são muito mais confiáveis. Exemplo de código:
proxies = {
"http": "http://user:pass@residential-proxy.example.com:8080",
"https": "http://user:pass@residential-proxy.example.com:8080"
}
response = requests.get(url, headers=headers, proxies=proxies)
4. Fortaleça o fingerprint do navegador (Selenium)
options.add_argument('--disable-blink-features=AutomationControlled')
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
# Depois de iniciar o driver, remova a flag navigator.webdriver
driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', {
'source': "Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"
})
5. Gerencie sessões e cookies
Manter cookies entre requisições faz seu scraper parecer mais uma sessão de usuário real:
session = requests.Session()
# Primeiro visite a página inicial para obter cookies realistas
session.get("https://www.amazon.com", headers=headers)
time.sleep(2)
# Depois faça a coleta na página alvo
response = session.get(target_url, headers=headers)
6. Quando pular essa dor de cabeça inteira
Para quem não quer gerenciar nada disso, o scraping em cloud do Thunderbit cuida da rotação de proxies, renderização e medidas anti-bot de forma transparente. As APIs de scraping também tratam da maior parte dessas questões automaticamente. Pela minha experiência, o tempo gasto debugando problemas anti-bloqueio muitas vezes supera o tempo gasto escrevendo o código de scraping — então a abordagem "que simplesmente funciona" tem ROI real.
Enriquecimento com subpáginas: extraindo páginas de detalhes do produto para dados mais ricos
A página de listagem de Best Sellers mostra apenas informações básicas — título, preço, avaliação e ranking. Mas o valor real para pesquisa de FBA está nas páginas individuais de produto. Veja o que você perde se extrair só a listagem:
| Campo | Página de listagem | Página de detalhes do produto |
|---|---|---|
| Nome do produto | ✅ | ✅ |
| Preço | ✅ | ✅ |
| Avaliação | ✅ | ✅ |
| Ranking BSR | ✅ | ✅ (com ranking por subcategoria) |
| Marca | ❌ | ✅ |
| ASIN | ❌ | ✅ |
| Data de primeiro lançamento | ❌ | ✅ |
| Dimensões/Peso | ❌ | ✅ |
| Número de vendedores | ❌ | ✅ |
| Recursos em bullet points | ❌ | ✅ |
| Dono do Buy Box | ❌ | ✅ |
O campo "Data de primeiro lançamento" é especialmente valioso — ele mostra há quanto tempo o produto está no mercado, o que é um sinal importante para análise de concorrência. E saber o número de vendedores e quem é o dono do Buy Box ajuda a avaliar se vale a pena entrar naquele nicho (se a própria Amazon detiver mais de 30% do Buy Box, competir é extremamente difícil).
Abordagem em Python: percorrendo URLs de produtos
Depois de coletar as URLs dos produtos na página de listagem, percorra cada uma com um atraso:
for product in products:
time.sleep(random.uniform(3, 6))
detail_response = session.get(product["URL"], headers={"User-Agent": random.choice(USER_AGENTS)})
detail_soup = BeautifulSoup(detail_response.text, "html.parser")
# Extrair marca
brand_tag = detail_soup.find("a", id="bylineInfo")
product["Brand"] = brand_tag.get_text(strip=True) if brand_tag else "N/A"
# Extrair ASIN do código-fonte ou da URL
# Extrair Data de primeiro lançamento da tabela de detalhes do produto
# ... campos adicionais ...
Aviso: acessar 100 páginas individuais de produto aumenta bastante o risco de bloqueio. Considere rotação de proxy e atrasos maiores no planejamento.
Abordagem com Thunderbit: scraping de subpáginas com um clique
Depois de extrair a página de listagem para uma tabela, clique em "Scrape Subpages" no Thunderbit. A IA visita cada URL de produto e enriquece a tabela com colunas extras — marca, ASIN, especificações, recursos — automaticamente. Sem código adicional, sem seletores e sem configuração extra. Isso é especialmente útil para equipes de e-commerce que precisam da visão completa para decisões de sourcing, mas não querem escrever e manter um parser de páginas de detalhe.
Automatizando coletas recorrentes: monitore os Best Sellers ao longo do tempo
Uma extração pontual é útil, mas o verdadeiro diferencial competitivo está no monitoramento contínuo. Acompanhar quais produtos sobem e descem, perceber tendências cedo e monitorar mudanças de preço ao longo de semanas ou meses — é isso que separa a pesquisa casual da tomada de decisão orientada por dados.
Abordagem em Python: agendamento com Cron
No Linux/Mac, você pode agendar seu script Python com cron. Aqui está a entrada no crontab para uma coleta diária às 8h:
0 8 * * * /usr/bin/python3 /home/user/amazon_scraper.py >> /home/user/logs/scrape.log 2>&1
Para uma coleta semanal às segundas-feiras às 9h:
0 9 * * 1 /usr/bin/python3 /home/user/amazon_scraper.py >> /home/user/logs/scrape.log 2>&1
No Windows, use o Agendador de Tarefas para fazer o mesmo. Para agendamento contínuo sem deixar seu notebook ligado, faça deploy em uma VPS ou AWS Lambda — embora isso adicione complexidade de infraestrutura.
Inclua logging e notificações de erro para capturar execuções malsucedidas. Não há nada pior do que descobrir, duas semanas depois, que seu scraper quebrou silenciosamente.
Abordagem com Thunderbit: Scheduled Scraper em linguagem natural
O Scheduled Scraper do Thunderbit permite descrever o intervalo em linguagem natural — digite "toda segunda-feira às 9h" ou "todos os dias às 8h" e a IA interpreta o agendamento. As coletas rodam nos servidores cloud da Thunderbit (não é preciso deixar navegador nem computador ligados), e os dados são exportados automaticamente para Google Sheets ou Airtable. Isso cria um painel de monitoramento ao vivo sem gestão de servidores — ideal para times de operações que querem visibilidade contínua sem o peso de DevOps.
Considerações legais e éticas ao extrair dados da Amazon
Não sou advogado, e isto não é aconselhamento jurídico. Mas ignorar o cenário legal em um tutorial de scraping seria irresponsável — usuários em fóruns levantam preocupações sobre os Termos de Serviço com razão.
robots.txt da Amazon: em 2026, o robots.txt da Amazon contém mais de 80 caminhos específicos com Disallow, mas /gp/bestsellers/ NÃO está explicitamente bloqueado para user agents padrão. No entanto, mais de 35 user agents específicos de IA (ClaudeBot, GPTBot, Scrapy etc.) recebem um Disallow: / geral. A ausência de uma proibição específica não significa que a Amazon aprove scraping.
Termos de Serviço da Amazon: os Conditions of Use da Amazon (atualizados em maio de 2025) proíbem explicitamente "usar qualquer processo automatizado ou tecnologia para acessar, adquirir, copiar ou monitorar qualquer parte do site da Amazon" sem permissão por escrito. Isso não é teoria — a Amazon processou a Perplexity AI em novembro de 2025 por acesso automatizado não autorizado e conseguiu uma liminar preliminar.
O precedente hiQ v. LinkedIn: em hiQ Labs v. LinkedIn (Nona Corte, 2022), o tribunal entendeu que extrair dados publicamente disponíveis provavelmente não viola o Computer Fraud and Abuse Act. Mas a hiQ acabou fechando acordo e concordando em parar de fazer scraping — vencer no CFAA não protege contra alegações de violação contratual.
Diretrizes práticas:
- Extraia apenas dados públicos (preços, BSR, títulos de produtos — não PII)
- Respeite limites de requisições e não sobrecarregue os servidores
- Use os dados para inteligência competitiva legítima
- Consulte seu próprio departamento jurídico antes de escalar a coleta
- Tenha em mente que mais de 20 estados dos EUA já têm legislação abrangente de privacidade
O scraping em cloud do Thunderbit usa padrões de requisição semelhantes aos de um navegador comum, mas você deve sempre verificar a conformidade com seu próprio aconselhamento jurídico.
Sem necessidade de Python Se o objetivo é uma planilha, e não um pipeline, um clique leva você até lá. Exporte direto para Excel, Google Sheets, Airtable ou Notion. Get Started Free
Qual método você deve usar? Guia rápido de decisão
Versão resumida:
- "Estou aprendendo Python e quero um projeto de fim de semana." → Método 1 (requests + BeautifulSoup). Você vai aprender muito sobre requisições HTTP, análise de HTML e as defesas anti-bot da Amazon.
- "Preciso extrair páginas pesadas em JavaScript ou sessões com login." → Método 2 (Selenium). É mais pesado, mas lida com conteúdo dinâmico.
- "Estou rodando coletas em produção e em escala." → Método 3 (API de scraping). Deixe outra pessoa cuidar dos proxies e da renderização. O custo total de propriedade favorece APIs abaixo de 500 mil requisições/mês.
- "Não sou desenvolvedor e quero os dados em 2 minutos." → Método 4 (Thunderbit). Sem código, sem seletores, sem manutenção.
- "Preciso de monitoramento contínuo sem gerenciar servidor." → Thunderbit Scheduled Scraper. Configure uma vez e pronto.
Experimente o Thunderbit para Amazon Best Sellers Get Started Free
Conclusão e principais aprendizados
Depois de um fim de semana de testes, foi isso que realmente ficou:
requests + BeautifulSoup é ótimo para aprender, mas a limitação do lazy loading (apenas ~30 dos 50 produtos) e os seletores CSS frágeis tornam essa abordagem pouco prática para produção.
Selenium resolve o problema do lazy loading e captura os 50 produtos por página, mas é lento, consome muita memória e ainda pode ser detectado pelas defesas da Amazon.
APIs de scraping oferecem a melhor confiabilidade para scraping em escala de produção — ~99% de taxa de sucesso na Amazon — mas os custos crescem e você ainda precisa escrever o código de parsing.
Thunderbit entregou, com folga, o menor tempo até ter os dados em mãos. A IA lida com mudanças de layout, lazy loading, paginação e medidas anti-bot sem configuração. Para usuários não técnicos ou equipes que precisam de dados recorrentes sem o peso de DevOps, é a opção mais prática.
A maior lição? As defesas anti-bot da Amazon e as mudanças frequentes de layout significam que soluções sem manutenção economizam mais tempo no longo prazo. Cada hora gasta depurando seletores quebrados e rotacionando proxies é uma hora que você deixa de usar para análise de verdade.
Quer testar a abordagem sem código? O plano grátis do Thunderbit dá créditos suficientes para extrair algumas categorias de Best Sellers e ver o resultado por conta própria. Prefere o caminho em Python? Os exemplos de código acima já devem ajudar a começar. De qualquer forma, você terá dados de Amazon Best Sellers em uma planilha em vez de ficar olhando para uma aba do navegador.
Para saber mais sobre abordagens de web scraping, confira nossos guias sobre extração de produtos e avaliações da Amazon, como extrair dados de sites para Excel e os melhores web scrapers com IA. Você também pode assistir a tutoriais passo a passo no canal da Thunderbit no YouTube.
Saiba mais


