Amazon Scraper: como coletar dados de produtos, ASINs e avaliações

Sua exportação de produtos da Amazon parece pronta para análise até você verificar algumas linhas. Dois preços pertencem a tamanhos diferentes, estimativas de entrega refletem CEPs diferentes, e as avaliações coletadas cobrem apenas parte do feedback que você esperava. Essas lacunas podem distorcer uma comparação de preços ou enviar a pesquisa de produtos na direção errada.
Um scraper da Amazon ajuda você a coletar dados, mas resultados úteis dependem de como você configura o trabalho e verifica sua saída. Este guia orienta você na escolha entre Python, web scraping APIs e ferramentas no-code, depois coletando detalhes de produtos, ASINs e avaliações com configurações consistentes. Você também aprenderá como verificar a precisão da localização, lidar com campos ausentes e construir um fluxo de trabalho repetível antes de escalar.
TL;DR
Escolha seu método: Construa um scraper da Amazon com Python quando precisar de lógica personalizada e puder manter o código. Escolha uma API gerenciada para reduzir o trabalho de extração, ou uma ferramenta no-code para exportações rápidas com configuração mínima.
Use proxies onde o fluxo de trabalho precisar deles: Proxies fornecem roteamento de rede e controle de IP para scripts personalizados. Combine rotação ou sticky sessions à tarefa, depois verifique as configurações de entrega da Amazon e os dados extraídos.
Mantenha comparações consistentes: Salve o ASIN, variante selecionada, vendedor, preço, moeda, marketplace, CEP de entrega, URL de origem e timestamp de coleta.
Verifique a cobertura de avaliações separadamente: Filtros, paginação e limites de acesso podem restringir sua amostra. Registre o que você coletou em vez de assumir que a exportação contém todas as avaliações.
O que é um scraper da Amazon e quais dados ele pode coletar?
Um scraper da Amazon é uma ferramenta que extrai informações de páginas da Amazon e as organiza em registros estruturados, como um arquivo CSV, planilha ou saída JSON. Em vez de copiar manualmente detalhes de produtos, você fornece URLs, termos de busca ou ASINs, dependendo da ferramenta, e especifica as informações que precisa.
Campos comuns incluem títulos de produtos, ASINs, marcas, preços, moedas, variantes selecionadas, nomes de vendedores, disponibilidade, avaliações e contagens de reviews. Algumas ferramentas também coletam listagens de busca e avaliações individuais de clientes, embora a cobertura dependa da ferramenta e do que ela pode acessar.
Empresas usam esses dados para monitorar preços, comparar produtos concorrentes, rastrear mudanças de sortimento e analisar feedback de clientes. Para fazer scraping de dados de produtos da Amazon e apoiar comparações confiáveis, cada registro precisa de contexto: qual variante e vendedor ele representa, a localização de entrega aplicada e quando a informação foi coletada.
Detalhes de produtos, preços, vendedores e disponibilidade
Escolha campos que permitam identificar o produto exato e entender a oferta anexada a ele. Um preço sozinho diz pouco se você não puder confirmar o tamanho, vendedor ou moeda.
Campo | O que capturar |
Título e marca | O nome do produto e marca exibidos para identificação e agrupamento. |
ASIN | O identificador da Amazon associado ao produto sendo coletado. |
Variante selecionada | Tamanho, cor, capacidade, quantidade do pacote ou outras opções selecionadas. |
Preço e moeda | O preço da oferta exibido e sua moeda, com cupons ou descontos condicionais registrados separadamente. |
Vendedor | O vendedor anexado à oferta; mantenha informações de fulfillment separadas quando disponíveis. |
Disponibilidade | O status exibido, como em estoque, temporariamente indisponível ou disponível para pré-venda. |
Estimativa de entrega | A data de entrega ou intervalo mostrado para o destino selecionado. |
URL de origem | O endereço da página para que você possa rastrear e verificar o registro. |
Dica profissional: Salve o timestamp da coleta e o código postal de entrega junto com esses campos para que comparações posteriores mantenham seu contexto original.
Resultados de pesquisa, avaliações e comentários de clientes
Um scraper da Amazon pode coletar vários tipos de dados, mas cada um responde a uma pergunta diferente. Os resultados de pesquisa mostram quais listagens aparecem para uma consulta, enquanto as páginas de produtos descrevem um produto selecionado e sua oferta exibida. As avaliações agregadas resumem as pontuações dos clientes; registros individuais de comentários fornecem o feedback escrito por trás de algumas dessas pontuações.
Tipo de dados | Campos úteis | Aplicação comercial | Limitação a verificar |
Resultados de pesquisa | Consulta, ASIN, título, posição, preço exibido, rótulo de patrocinado | Rastrear visibilidade do produto e descobrir listagens concorrentes | A posição depende da consulta e do contexto de coleta; separe os posicionamentos patrocinados dos resultados orgânicos. |
Páginas de produtos | ASIN, variante, preço, vendedor, disponibilidade | Comparar ofertas e monitorar mudanças de produtos | Confirme a variante selecionada, o vendedor e o local de entrega antes de comparar registros. |
Avaliações agregadas | Avaliação média em estrelas, contagem total de avaliações, distribuição de estrelas quando disponível | Monitorar o sentimento geral do cliente | Uma contagem de avaliações não é igual ao número de comentários escritos disponíveis para coletar. |
Comentários individuais | ID do comentário, estrelas, título, texto, data, indicador de compra verificada | Identificar reclamações recorrentes e pontos fortes do produto | Filtros, ordenação e limites de acesso podem produzir uma amostra incompleta ou distorcida. |
Ao fazer scraping de dados de produtos da Amazon, mantenha esses conjuntos de dados conectados por meio de identificadores como ASINs, preservando seus significados separados.
Configure o acesso proxy para seu scraper da Amazon com CyberYozh App
CyberYozh App fornece infraestrutura de proxy para controlar a conexão de rede que seu scraper da Amazon usa. Combine o tipo de proxy e o comportamento de sessão ao seu processo de coleta e, em seguida, avalie o desempenho usando registros extraídos corretamente, em vez de apenas o sucesso da conexão.
Escolha proxies residenciais rotativos ou sessões sticky para a tarefa
Conexões residenciais rotativas são adequadas para trabalhos de coleta independentes que não precisam manter o mesmo endereço de rede entre tarefas. Para solicitações relacionadas, como definir um local de entrega e abrir várias páginas de produtos, use uma sessão sticky para manter o IP enquanto seu aplicativo preserva seus cookies e estado do navegador.
Os proxies residenciais rotativos da CyberYozh oferecem suporte a sessões rotativas e sticky, acesso completo à API e rollover de tráfego mensal. O faturamento baseado em uso com rollover se adequa a pesquisas recorrentes cujo volume varia entre períodos mais calmos e execuções de coleta maiores, porque o tráfego não utilizado é transferido para o próximo mês de faturamento.
Avalie opções mobile, ISP estático e datacenter
Compare essas opções usando a mesma amostra de produto, requisitos de localização e critérios de aceitação.
Tipo de proxy | Onde pode se adequar | O que avaliar |
Coleta recorrente onde o acesso à rede de operadora e controle sobre mudanças de IP são úteis | Localizações disponíveis, comportamento de rotação, taxa de transferência e resultados utilizáveis sob sua carga de trabalho | |
Trabalhos que se beneficiam de manter um IP dedicado através de sessões repetidas | Continuidade de sessão, adequação de localização e desempenho ao longo do tempo | |
Cargas de trabalho onde velocidade de conexão e custo de infraestrutura são prioridades | Se suas páginas alvo retornam dados completos e utilizáveis a um custo aceitável |
Dica profissional: O CyberYozh App lista tráfego ilimitado em seus planos mobile, ISP estático e datacenter. Isso pode tornar os gastos com largura de banda mais previsíveis para coleta frequente, enquanto os pacotes residenciais rotativos permanecem baseados em tráfego, já que o tráfego não utilizado é transferido automaticamente para o próximo mês de cobrança. Verifique a localização, velocidade e condições de conexão do plano selecionado antes de contratar.
Conectar, verificar e monitorar o fluxo de trabalho
Conecte o proxy através do seu cliente HTTP Python ou das configurações de proxy suportadas por automações como Scrapy, Playwright, Puppeteer, Selenium ou outro framework compatível. O CyberYozh fornece acesso completo à API e suporte de integração, enquanto a configuração exata depende da ferramenta e do protocolo de proxy selecionado.
Siga esta sequência de configuração:
Recupere os detalhes de conexão. Copie o host, porta, protocolo e detalhes de autenticação da sua configuração de proxy. Mantenha as credenciais em variáveis de ambiente ou em um gerenciador de segredos.
Configure o comportamento da sessão. Escolha rotação para trabalhos independentes ou uma sessão sticky para solicitações relacionadas. Preserve cookies separadamente em sua aplicação.
Verifique a conexão de saída. Confirme que as solicitações usam o proxy e que sua região observada corresponde à sua seleção.
Verifique o contexto de entrega da Amazon. Aplique e verifique o destino na página do produto independentemente da localização do proxy.
Execute um trabalho de coleta pequeno. Monitore registros utilizáveis, tempos de resposta, campos ausentes, consumo de tráfego e falhas repetidas antes de aumentar o volume.
As verificações de reputação de IP do CyberYozh podem fornecer contexto adicional ao investigar problemas de conexão.
Escolha seu scraper da Amazon: Python, API ou ferramenta no-code
Escolha seu scraper da Amazon com base na frequência com que você precisa de dados, quanto controle o trabalho requer e quem irá mantê-lo. Uma comparação de produtos única tem demandas diferentes de um trabalho de coleta diário alimentando um painel interno.
Python se adequa a fluxos de trabalho que precisam de regras de extração, validação ou armazenamento personalizados. Você controla o código, mas sua equipe também lida com erros de análise, mudanças de página e manutenção contínua.
Uma API gerenciada é adequada para coleta recorrente quando você deseja que o provedor cuide de mais trabalho de extração. Antes de se comprometer, verifique se ela retorna os campos necessários, oferece suporte às suas localizações de destino e cobra por solicitações ou resultados utilizáveis.
Um web scraper sem código funciona bem para pesquisas rápidas e exportações diretas. Verifique seus limites de lote, opções de agendamento e controles de personalização se você espera que a carga de trabalho cresça.
Python para coleta e validação personalizadas
Python oferece controle sobre o que seu scraper da Amazon coleta e o que acontece com cada registro depois. Você pode selecionar os campos que sua pesquisa precisa, agendar a coleta em torno de prazos de relatórios e salvar resultados diretamente em arquivos CSV, bancos de dados ou sistemas internos. Regras de validação personalizadas podem sinalizar uma moeda ausente, um ASIN inesperado ou uma variante alterada antes que o registro chegue à sua análise.
Você também controla como o scraper lida com falhas. Por exemplo, você pode tentar novamente um erro de conexão temporário dentro de um limite definido, registrar um produto indisponível separadamente e pausar um trabalho quando respostas repetidas contiverem conteúdo inesperado.
Uma API de scraper da Amazon para extração gerenciada
Uma API de scraper da Amazon permite que seu aplicativo solicite dados sem manter cada parte do processo de coleta por conta própria. Dependendo do serviço, o provedor cuida da recuperação de páginas, infraestrutura de proxy, novas tentativas, renderização e análise, e então retorna resultados estruturados. Verifique o que está incluído: alguns endpoints retornam conteúdo bruto de página que ainda precisa de extração.
Sua responsabilidade é confirmar que a saída corresponde ao trabalho. Teste os campos de produto necessários, verifique se as configurações de localização de entrega estão aplicadas e verifique a cobertura de avaliações separadamente do suporte à página de produto. Pergunte se os resultados são coletados sob demanda ou servidos de um cache, especialmente ao rastrear preços ou disponibilidade.
Ferramentas sem código para exportações menores e pesquisa rápida
Extensões de navegador e scrapers prontos são práticos para coletar uma lista restrita de produtos concorrentes, verificar preços exibidos ou exportar listagens para um relatório de pesquisa. Você normalmente fornece URLs de produtos ou abre uma página suportada, escolhe os campos disponíveis e exporta os resultados sem escrever código de coleta.
Verifique como a ferramenta funciona antes de confiar nela para trabalho repetido. Uma extensão de navegador pode exigir que seu navegador permaneça aberto, enquanto um scraper hospedado pode oferecer suporte a trabalhos agendados. Verifique limites de lote, formatos de exportação, agendamento e se as configurações de localização de entrega persistem entre execuções.
Existe uma API oficial da Amazon para web scraping?
A Amazon fornece APIs oficiais para usos comerciais definidos, mas estas diferem de serviços de terceiros que extraem conteúdo de sites. Se você está procurando uma API da Amazon para web scraping, primeiro verifique se uma API oficial fornece as informações que seu projeto precisa.
A Selling Partner API (SP-API) oferece suporte a fluxos de trabalho autorizados de vendedores e fornecedores. O acesso depende do aplicativo, funções necessárias e processo de autorização relevante; ter apenas uma conta de compras da Amazon não concede acesso. Aplicativos públicos geralmente exigem autorização de parceiro vendedor, enquanto aplicativos privados usam autoautorização.
A Amazon também oferece uma Customer Feedback API, que fornece insights de avaliações no nível de ASIN e categoria de produto, além de insights de devolução no nível de categoria. Ela abrange tópicos e tendências em vez de fornecer uma exportação completa de cada avaliação individual. O acesso requer uma função elegível, como Brand Analytics ou Selling Partner Insights.
Uma API de scraper da Amazon de terceiros é um serviço de extração de provedor separado. Suas credenciais, campos suportados e cobrança pertencem a esse provedor, e a assinatura não concede autorização da Amazon.
Método | Melhor adequação | Esforço de configuração | Manutenção | Modelo de custo |
Scraper Python personalizado | Campos personalizados, validação e fluxos de armazenamento | Maior: construir e testar código de coleta | Sua equipe mantém parsing, dependências e tratamento de erros | Desenvolvimento, hospedagem e quaisquer custos de proxy |
API de scraping gerenciada | Coleta recorrente com menos infraestrutura de extração para manter | Moderado: integrar a API e validar a saída | O provedor mantém a extração; você mantém a integração e verificações de dados | Requisições, créditos, registros ou assinatura |
Ferramenta no-code | Pesquisa rápida e exportações diretas | Menor: configurar entradas e campos disponíveis | Verificar templates, trabalhos com falha e qualidade da exportação | Limite gratuito, assinatura ou créditos de uso |
API oficial da Amazon | Fluxos de trabalho empresariais suportados com o acesso necessário | Varia: registro, funções, autorização e integração | Manter permissões, compatibilidade da API e tratamento de dados | Verificar taxas de programa aplicáveis e custos de integração |
Como fazer scraping de dados de produtos da Amazon com Python
Um passo a passo útil em Python deve levá-lo de uma URL de produto a um registro estruturado que você pode inspecionar. Vamos construir esse fluxo de trabalho em etapas: definir os campos necessários, configurar o projeto, buscar uma página, extrair os detalhes do produto e exportar os resultados para CSV ou JSON.
Comece com um pequeno conjunto de URLs de produtos para que você possa comparar a saída com as páginas de origem. Cada registro deve preservar o ASIN, variante selecionada, preço, moeda e timestamp de coleta, com valores ausentes claramente marcados.
Defina seus campos, marketplace e escopo de coleta
Antes de escrever o scraper, decida o que um registro completo deve conter e quais condições devem permanecer consistentes entre as execuções. Para este passo a passo, comece com uma pequena lista de URLs de produtos de um marketplace da Amazon.
Configuração | O que definir |
Marketplace | Escolha o domínio da Amazon que você deseja pesquisar, como Amazon.com para os EUA. |
URLs de entrada | Use URLs específicas de páginas de produtos e identifique as variantes que você pretende rastrear. |
Campos obrigatórios | Comece com ASIN, título, variante selecionada, preço, moeda, disponibilidade, URL de origem e timestamp de coleta. Adicione detalhes do vendedor e de entrega se sua análise precisar deles. |
Contexto de entrega | Escolha o país de destino e o código postal, depois verifique se o método de coleta os aplica. Registre configurações não verificadas como desconhecidas. |
Frequência de coleta | Ajuste o cronograma à decisão que os dados apoiam, começando com uma única execução antes de introduzir tarefas recorrentes. |
Defina quais campos ausentes tornam um registro inutilizável. Um preço ausente, por exemplo, impede uma comparação de preços, mas ainda pode deixar informações úteis de disponibilidade. Preserve essa distinção para que seu scraper da Amazon possa sinalizar registros incompletos sem descartar observações válidas.
Configure seu projeto Python de scraper da Amazon
Comece com um ambiente virtual para manter as dependências do projeto separadas de outras aplicações Python. Esta configuração foi verificada com Python 3.12.14, Requests 2.34.2 e Beautiful Soup 4.15.0. A instalação, importações e análise de HTML de amostra foram aprovadas; a extração ao vivo da Amazon não foi testada nesta etapa.
Requests lida com requisições HTTP, enquanto Beautiful Soup extrai campos do HTML retornado. Nenhum dos dois executa JavaScript.
Crie a pasta do projeto e o ambiente virtual:
mkdir amazon-scraper
cd amazon-scraper
python -m venv .venvAtive o ambiente usando o comando para o seu sistema operacional.
macOS ou Linux
source .venv/bin/activateWindows
.\.venv\Scripts\Activate.ps1 Instale as versões de dependências verificadas:
python -m pip install requests==2.34.2 beautifulsoup4==4.15.0Crie um arquivo chamado amazon_scraper.py e adicione a configuração inicial abaixo. Insira os URLs dos produtos-alvo em PRODUCT_URLS, mantendo cada URL entre aspas e separando as entradas com vírgulas.
</> python
import os
from urllib.parse import urlparse
import requests
from bs4 import BeautifulSoup
MARKETPLACE = "www.amazon.com"
REQUEST_TIMEOUT = 30
OUTPUT_FILE = "amazon_products.csv"
PRODUCT_URLS = [
# Add your target Amazon product URLs here.
]
for url in PRODUCT_URLS:
parsed = urlparse(url)
if parsed.scheme != "https" or parsed.hostname != MARKETPLACE:
raise ValueError("Each URL must use the selected marketplace.")
session = requests.Session()
# Optional: supply the full proxy URL through your environment.
proxy_url = os.environ.get("AMAZON_PROXY_URL")
if proxy_url:
session.proxies.update({
"http": proxy_url,
"https": proxy_url,
})Mantenha senhas de proxy e chaves de API em variáveis de ambiente fornecidas através do seu ambiente de desenvolvimento ou gerenciador de segredos de implantação. Evite incorporar credenciais no script, commitá-las no Git ou imprimi-las em logs.
Dica: Esta configuração prepara a sessão, mas não busca páginas de produtos nem define o CEP de entrega da Amazon. Deixe o contexto de entrega não verificado até que o fluxo de coleta o aplique e verifique explicitamente.
Busque uma página de produto e verifique o que foi retornado
Uma resposta HTTP bem-sucedida não garante que seu scraper da Amazon recebeu a página do produto. Um servidor pode retornar HTTP 200 OK com um desafio, tela de login ou outra página inesperada, portanto verifique tanto o status da resposta quanto o conteúdo antes de extrair os campos do produto.
Adicione a função abaixo após sua configuração de sessão. Ela verifica falhas de requisição, redirecionamentos inesperados, respostas não-HTML, indicadores comuns de desafio e um elemento de título do produto.
def fetch_product_page(url):
try:
response = session.get(url, timeout=REQUEST_TIMEOUT)
response.raise_for_status()
except requests.RequestException:
# Avoid logging exception details that could expose proxy credentials.
raise RuntimeError(
"Request failed. Check connectivity and the HTTP response."
) from None
if urlparse(response.url).hostname != MARKETPLACE:
raise RuntimeError("The request redirected to another domain.")
content_type = response.headers.get("Content-Type", "").lower()
if "text/html" not in content_type:
raise RuntimeError("Expected HTML but received another content type.")
soup = BeautifulSoup(response.text, "html.parser")
page_text = soup.get_text(" ", strip=True).lower()
challenge_markers = (
"enter the characters you see below",
"sorry, we just need to make sure you're not a robot",
"validatecaptcha",
)
if (
soup.select_one('form[action*="validateCaptcha"]')
or any(marker in page_text for marker in challenge_markers)
):
raise RuntimeError(
"A challenge page was returned. Pause and review the request."
)
title = soup.select_one("#productTitle")
if title is None or not title.get_text(strip=True):
raise RuntimeError(
"Product title not found. The page may be unexpected "
"or its structure may have changed."
)
return soup, response.urlChame a função para um URL antes de processar a lista completa:
if not PRODUCT_URLS:
raise SystemExit("Add a product URL to PRODUCT_URLS first.")
try:
soup, final_url = fetch_product_page(PRODUCT_URLS[0])
print("Page passed the initial checks.")
print("Title:", soup.select_one("#productTitle").get_text(strip=True))
except RuntimeError as error:
print("Collection stopped:", error)Beautiful Soup analisa o HTML aqui para inspecionar sua estrutura; a extração do registro do produto vem a seguir. Essas verificações são preliminares: a redação do desafio e os layouts de página podem mudar, e encontrar um título não confirma o ASIN solicitado, a variante selecionada ou o local de entrega. Verifique-os separadamente antes de aceitar o registro.
Extraia campos do produto e trate valores ausentes
Depois que a página passar nas verificações iniciais, extraia um pequeno conjunto de campos: ASIN, título, preço exibido e disponibilidade. Mantenha o URL de origem e o timestamp de coleta com cada registro para que você possa rastreá-lo depois.
Use None quando um campo estiver ausente. Um preço ausente pode significar que a oferta está indisponível, a página requer outra seleção ou o seletor não corresponde mais. Convertê-lo para zero introduziria um preço falso em sua análise.
Adicione o seguinte abaixo de suas funções existentes.
from datetime import datetime, timezone
def text_or_none(soup, selector):
element = soup.select_one(selector)
if element is None:
return None
return element.get_text(" ", strip=True) or None
def extract_product_fields(soup, source_url):
asin_element = soup.select_one("input#ASIN")
asin = (
asin_element.get("value", "").strip() or None
if asin_element is not None
else None
)
# Limit extraction to the main price area to reduce the chance
# of collecting a price from recommendations or another offer.
price_text = text_or_none(
soup,
"#corePriceDisplay_desktop_feature_div "
".priceToPay .a-offscreen",
)
return {
"asin": asin,
"title": text_or_none(soup, "#productTitle"),
"price_text": price_text,
"availability_text": text_or_none(soup, "#availability"),
"source_url": source_url,
"collected_at": datetime.now(timezone.utc).isoformat(),
}Mantenha o preço como texto exibido nesta etapa. Separar seu valor numérico e moeda requer validação contra a formatação do marketplace; um símbolo de moeda sozinho pode ser ambíguo.
Após uma busca bem-sucedida, chame a função de extração:
record = extract_product_fields(soup, final_url)
missing_fields = [
field
for field in ("asin", "title", "price_text", "availability_text")
if record[field] is None
]
print(record)
print("Missing fields:", missing_fields)Coloque esta chamada dentro do bloco try bem-sucedido da etapa anterior, imediatamente após fetch_product_page(), para que a extração não seja executada após uma requisição com falha.
Um valor ausente deve acionar inspeção em vez de uma busca mais ampla por qualquer preço na página. Antes de usar o registro para comparações, verifique também o ASIN solicitado, a variante selecionada, o vendedor e o contexto de entrega.
Exporte para CSV ou JSON e valide uma amostra
Exporte cada registro de produto com seu URL de origem, timestamp de coleta, marketplace e contexto de entrega. Mantenha o CEP solicitado separado do local realmente observado na página: inserir um alvo em sua configuração não prova que a Amazon o aplicou.
JSON preserva valores ausentes como null, enquanto esta exportação CSV os deixa em branco. Nenhum formato deve substituir um preço ausente por zero.
Adicione esta função abaixo de suas funções existentes.
import csv
import json
def export_records(records, csv_path, json_path):
if not records:
raise ValueError("No records to export.")
fields = list(records[0])
with open(csv_path, "w", encoding="utf-8", newline="") as file:
writer = csv.DictWriter(file, fieldnames=fields)
writer.writeheader()
writer.writerows(records)
with open(json_path, "w", encoding="utf-8") as file:
json.dump(
records,
file,
ensure_ascii=False,
indent=2,
allow_nan=False,
)Substitua o bloco de teste de URL único anterior pelo seguinte. Ele conecta busca, extração e exportação usando as funções já definidas.
if not PRODUCT_URLS:
raise SystemExit("Add a product URL to PRODUCT_URLS first.")
# Leave unknown until you implement delivery-location controls.
REQUESTED_DELIVERY_ZIP = None
try:
soup, final_url = fetch_product_page(PRODUCT_URLS[0])
record = extract_product_fields(soup, final_url)
record.update({
"marketplace": urlparse(final_url).hostname,
"requested_delivery_zip": REQUESTED_DELIVERY_ZIP,
"observed_delivery_zip": None,
"delivery_location_verified": False,
})
export_records(
[record],
OUTPUT_FILE,
"amazon_products.json",
)
print("Exported one record. Validate it before using it.")
except (RuntimeError, ValueError, OSError) as error:
print("Job stopped:", type(error).__name__)O seguinte é um exemplo mostrando como campos ausentes aparecem.
{
"asin": null,
"title": "Sample product, blue",
"price_text": null,
"availability_text": null,
"source_url": "https://www.amazon.com/dp/EXAMPLE123",
"collected_at": "2026-10-14T14:00:00+00:00",
"marketplace": "www.amazon.com",
"requested_delivery_zip": null,
"observed_delivery_zip": null,
"delivery_location_verified": false
}Verificação de validação: A função de exportação foi testada no Python 3.12.14 com um registro de amostra. O JSON preservou valores ausentes e a flag booleana de localização, o CSV preservou um título contendo uma vírgula e deixou valores ausentes em branco, e a entrada vazia foi rejeitada. Isso verifica o comportamento de exportação; não verifica a recuperação ao vivo da Amazon ou os seletores.
Antes de agendar seu projeto de Amazon scraper Python, inspecione alguns registros em relação às suas páginas de origem:
Confirme se o ASIN, a variante selecionada e o vendedor correspondem ao produto e à oferta pretendidos.
Compare o preço exibido e a moeda sob as mesmas configurações de entrega.
Verifique os carimbos de data/hora e URLs de origem, e investigue campos obrigatórios ausentes.
Mantenha registros dependentes de localização fora das comparações até que seu contexto de entrega seja verificado.
Falhas esperadas incluem solicitações bloqueadas, layouts de página alterados, detalhes de oferta ausentes e erros de gravação de arquivo. Um registro parcial ainda pode conter informações úteis, mas não deve ser considerado como uma observação de preço completa.
Aprender como fazer scraping da Amazon inclui reconhecer esses limites. Se você deseja entender como fazer scraping de dados da Amazon de forma confiável, valide os registros salvos antes de aumentar o volume de coleta.
Como usar um Amazon ASIN scraper sem misturar produtos
Um Amazon ASIN scraper ajuda você a construir uma lista de identificadores de produtos e recuperar seus detalhes associados. Para comparações confiáveis, mantenha esses identificadores conectados ao marketplace correto, variante selecionada e oferta do vendedor. Caso contrário, uma mudança entre produtos ou ofertas pode parecer uma alteração de preço.
O que é um Amazon Standard Identification Number?
Um Amazon Standard Identification Number (ASIN) é um identificador alfanumérico de 10 caracteres usado para identificar um item no catálogo da Amazon. Ele fornece ao seu fluxo de trabalho de coleta uma referência mais precisa do que um título de produto, que pode mudar ou se assemelhar a outras listagens.
Armazene o marketplace junto com cada ASIN e distinga o identificador do SKU do vendedor. O ASIN identifica o item do catálogo, enquanto um SKU do vendedor identifica uma listagem dentro do próprio sistema de inventário desse vendedor. As APIs da Amazon usam esses identificadores para operações diferentes.
Extrair ASINs de URLs de produtos e resultados de pesquisa
Trate a descoberta de ASIN como uma etapa separada da coleta de preços, disponibilidade e outros detalhes do produto. Uma lista de identificadores informa ao seu scraper quais itens investigar; ela não confirma quanto esses itens custam atualmente.
Use esta sequência quando você fizer scraping de dados de ASIN da Amazon:
Descubra identificadores candidatos. Extraia-os de links de produtos ou atributos de listagem no HTML da página de pesquisa retornada. Preserve a URL de origem e, para resultados de pesquisa, a consulta e a posição.
Valide o formato. Verifique exatamente 10 letras ou dígitos. Passar nesta verificação apenas confirma o formato esperado, não que o ASIN existe ou representa sua variante pretendida.
Remova duplicatas da fila de coleta. Use o marketplace e o ASIN juntos para evitar buscar o mesmo item do catálogo repetidamente.
Busque e verifique os detalhes do produto. Compare o identificador descoberto com o item realmente retornado, depois verifique a variante selecionada antes de aceitar seus dados de oferta.
Mantenha as observações de pesquisa separadamente da fila sem duplicatas. Um ASIN aparecendo sob duas consultas pode exigir apenas uma busca de produto, mas ambas as aparições podem importar para análise de visibilidade.
Mantenha produtos pai, variantes filho e ofertas de vendedores separados
Um ASIN pai agrupa variações relacionadas e não é em si uma oferta comprável. Um ASIN filho identifica uma variação específica, como uma combinação de tamanho e cor. As ofertas de vendedores ficam abaixo dessa identidade de produto e descrevem quem está vendendo, em que condição e a que preço.
Considere este exemplo ilustrativo:
Nível | Exemplo | O que seu scraper deve preservar |
Família de produtos | Uma camiseta oferecida em vários tamanhos e cores | ASIN pai e sua relação com os produtos filhos |
Variante selecionada | Camiseta azul, tamanho médio | ASIN filho, cor e tamanho |
Oferta do vendedor | O Vendedor A oferece essa variante nova por $18, mais $3 de frete | Identificador do vendedor, condição, preço do item, frete e horário de coleta |
Suponha que a próxima execução capture uma camiseta azul tamanho grande por $24. Essa é uma variante diferente, portanto, relatar um aumento de $6 seria enganoso. Se a camiseta média aparecer em vez disso por $20 do Vendedor B, a oferta observada mudou, mas isso não estabelece que o Vendedor A aumentou seu preço.
Para monitoramento de preços, compare o mesmo marketplace, ASIN filho, vendedor, condição e contexto de entrega ao longo dos horários de coleta. Se seu objetivo é rastrear qualquer oferta que a Amazon exiba, registre mudanças de vendedor explicitamente para que você possa explicar o que mudou.
Como fazer scraping de avaliações da Amazon e medir a cobertura
Para entender como fazer scraping de avaliações da Amazon de forma confiável, comece definindo o feedback de que você precisa e verificando quanto seu método escolhido pode recuperar. Um scraper de avaliações da Amazon pode retornar registros úteis sem cobrir todas as avaliações associadas a um produto. Meça essa cobertura antes de tirar conclusões sobre o sentimento do cliente.
Escolha os campos de avaliação que sua pesquisa precisa
Colete informações suficientes para analisar o feedback, identificar duplicatas e rastrear cada registro de volta à sua origem.
Campo | Por que importa |
ID da avaliação | Identifica uma avaliação para desduplicação e coleta repetida. |
Classificação | Conecta o feedback escrito à sua pontuação em estrelas. |
Título e texto | Capture os comentários do cliente para análise de tópicos e sentimento. |
Data da avaliação | Ajuda a separar experiências recentes de feedback mais antigo. |
Indicador de compra verificada | Preserva o rótulo de verificação de compra quando disponível; não é uma garantia de precisão. |
Variante relevante | Registra o tamanho, cor ou outra opção associada à avaliação quando exibida. |
URL de origem | Fornece uma referência para verificar o feedback original. |
Mantenha campos indisponíveis como valores ausentes. Por exemplo, um indicador que seu scraper falhou em extrair deve permanecer desconhecido em vez de ser registrado como "não verificado". Armazene o timestamp de coleta separadamente da data de publicação da avaliação.
Como fazer scraping da Amazon por código postal
Aprender como fazer scraping da Amazon por código postal começa com a definição do destino de entrega e a confirmação de que ele permanece aplicado quando você coleta os dados do produto. Uma conexão de proxy dos EUA sozinha não estabelece o código postal que a Amazon usa para estimativas de entrega.
O exemplo em Python acima ainda não implementa controles de localização de entrega. Seus campos de localização permanecem não verificados até que você adicione um fluxo de trabalho de navegador ou use um serviço de scraping com suporte documentado para as configurações de entrega da Amazon.
Definir e verificar a localização de entrega
Para um fluxo de trabalho baseado em navegador, use a seguinte sequência:
Abrir o marketplace de destino
Abrir o seletor de localização de entrega da Amazon
Aguardar a atualização da página
Abrir o produto de destino e selecionar sua variante
Capturar a localização observada juntamente com os campos do produto
Manter as configurações de entrega e o contexto de sessão consistentes
Várias configurações contribuem para o contexto de coleta, mas servem a propósitos diferentes.
Configuração | Sua função | O que verificar |
Domínio do marketplace | Seleciona a loja da Amazon que está sendo consultada | A solicitação e a página final usam o domínio pretendido. |
Endereço de entrega ou código postal | Especifica o destino usado para informações de entrega | A página do produto reflete o destino solicitado. |
Cookies e sessão do navegador | Preservam seleções de localização e outros estados de navegação | A localização permanece aplicada após navegação e atualização. |
Localização do proxy | Controla a localização de saída da rede | A conexão usa a região pretendida sem presumir que ela define o código postal de entrega. |
Para um fluxo de trabalho de navegador personalizado, uma sessão proxy sticky pode ajudar a preservar a continuidade da rede. Ela não substitui a etapa de seleção de localização nem prova que a Amazon reteve o destino escolhido.
Comparar o mesmo produto sob condições controladas
Comece com um ASIN filho e dois códigos postais, coletando ambas as observações dentro de uma janela curta. Mantenha a variante selecionada, condição do produto, quantidade e estado da conta consistentes. Mantenha o vendedor constante sempre que possível; se o vendedor exibido mudar, registre essa mudança antes de interpretar uma diferença de preço.
Salve estes detalhes com cada observação:
Código postal solicitado, localização de entrega observada e status de verificação.
Marketplace, ASIN filho, variante selecionada, vendedor e condição.
Preço do item exibido, moeda, taxa de envio, disponibilidade e estimativa de entrega.
URL de origem e timestamp de coleta.
Para uma pequena comparação, use o seguinte modelo de registro. É uma planilha de teste, não resultados observados da Amazon.
Observação | Execução ZIP-code A | Execução ZIP-code B |
ZIP code solicitado | 10001 | 90001 |
Localização de entrega observada | Registrar da resposta | Registrar da resposta |
Timestamp da coleta | Registrar horário real | Registrar horário real |
ASIN filho e variante | Registrar e comparar | Registrar e comparar |
Vendedor e condição | Registrar e comparar | Registrar e comparar |
Preço do item e envio | Registrar separadamente | Registrar separadamente |
Disponibilidade e estimativa de entrega | Registrar valores exibidos | Registrar valores exibidos |
Uma comparação de ZIP-code descreve essas observações naqueles momentos. Ela não deve ser apresentada como prova de uma diferença permanente de preço regional.
Como escolher a melhor API de scraping de e-commerce para dados de produtos da Amazon
A melhor API de scraping de e-commerce para dados de produtos da Amazon é aquela que retorna os campos que seu fluxo de trabalho precisa, nas condições de coleta corretas, a um custo sustentável. Avalie os provedores com base nas mesmas entradas e critérios de aceitação para que uma resposta rápida, mas incompleta, não supere um registro mais lento e utilizável no papel.
Verifique a cobertura de campos, controles de localização e suporte a avaliações
Transforme os requisitos do seu conjunto de dados em uma lista de verificação antes de testar. Separe campos essenciais dos opcionais: um trabalho de monitoramento de preços pode exigir o ASIN filho, vendedor, preço, moeda e contexto de entrega, enquanto a descoberta de produtos pode priorizar títulos, marcas, categorias e identificadores.
Verifique a documentação de cada capacidade necessária e, em seguida, confirme na saída. O suporte para "dados da Amazon" não estabelece que cada endpoint lida com variantes, ofertas de vendedores, ZIP codes de entrega e avaliações igualmente bem.
Meça resultados utilizáveis, tempo de resposta e custo total
Defina um resultado utilizável antes de calcular o sucesso. Para uma comparação de preços, isso pode significar um registro com o ASIN filho correto, campos de oferta necessários, contexto de entrega verificado e um timestamp de coleta aceitável. Para monitoramento de disponibilidade, um produto indisponível corretamente identificado pode ser útil mesmo sem um preço.
Use a mesma definição entre provedores:
Taxa de resultados utilizáveis = observações solicitadas que atendem aos seus critérios de aceitação ÷ total de observações solicitadas × 100
Uma observação é uma verificação planejada de produto e localização em um momento específico de coleta. Tentativas repetidas e respostas duplicadas não devem aumentar o número de observações bem-sucedidas.
Rastreie falhas por causa: campos obrigatórios ausentes, produto ou localização incorretos, saída duplicada, falha de recuperação e falha de análise. Isso facilita ver se a fraqueza de um provedor afeta sua carga de trabalho real.
Meça o tempo decorrido até que os dados utilizáveis estejam disponíveis, incluindo tentativas repetidas e polling assíncrono. Para testes maiores, compare tempos de resposta típicos com solicitações mais lentas, em vez de confiar apenas em uma média.
Calcule o custo usando o mesmo princípio:
Custo por observação utilizável = total de cobranças de teste ÷ observações utilizáveis
Inclua tentativas faturáveis, cobranças de renderização, recursos de localização e outros extras necessários. Para trabalhos recorrentes, considere também os mínimos de assinatura e o trabalho necessário para limpar ou reparar a saída.
Teste uma amostra representativa antes de escalar
Comece com aproximadamente 20 URLs de produtos em três ou quatro categorias, cobrindo diferentes variantes e alguns produtos observados como indisponíveis. Execute cada um contra dois códigos postais de entrega para um primeiro teste gerenciável de cerca de 40 observações.
Mantenha entradas e configurações consistentes entre provedores, colete dentro de uma janela curta e registre quaisquer alterações na página de origem que possam afetar a comparação. Inspecione cada registro nesta amostra inicial antes de introduzir um cronograma recorrente.
Use esta tabela para documentar os resultados:
Requisito | Teste | Resultado | Limitação |
Campos de produto obrigatórios | Verifique cada registro em relação à lista de campos acordada | Registre observações completas do total | Anote campos que estão ausentes ou preenchidos de forma inconsistente. |
Variante correta | Compare o ASIN filho retornado e os atributos com a variante solicitada | Registre correspondências e incompatibilidades | Sinalize redirecionamentos ou seleções de variantes não resolvidas. |
Controle de localização de entrega | Solicite dois códigos postais e inspecione o contexto de entrega observado | Registre correspondências de localização verificadas | Indique quando apenas o código postal solicitado for retornado. |
Produtos indisponíveis | Verifique se os itens indisponíveis são identificados sem inventar preços | Registre status precisos | Distinga a indisponibilidade da fonte da falha de extração. |
Suporte de avaliações | Teste um trabalho de avaliação pequeno separado com filtros e paginação definidos | Registre avaliações utilizáveis únicas | Documente limites de acesso e cobertura desconhecida. |
Atualização | Inspecione os timestamps de coleta e o comportamento de cache documentado | Registre a atualização em relação ao seu requisito | Sinalize timestamps que indicam apenas o tempo de resposta. |
Tempo de resposta | Meça o tempo desde o envio até a saída utilizável, incluindo tentativas | Registre os tempos típicos e mais lentos | Uma amostra pequena não estabelece desempenho em escala. |
Custo total | Reconcilie o uso faturado com as observações utilizáveis | Registre o custo por observação utilizável | Inclua extras obrigatórios e mínimos de assinatura. |
Escolha com base nos requisitos que mais importam para o seu fluxo de trabalho de scraping de dados de produtos da Amazon. Um provedor que tem bom desempenho neste pequeno teste merece um teste maior; ele ainda não demonstrou o mesmo desempenho em todo o seu catálogo.
Usando código do GitHub para o seu scraper da Amazon
Pesquisar por "how to scrape amazon product data github" pode levá-lo a scrapers executáveis, integrações de API e tutoriais com requisitos muito diferentes. Antes de instalar um repositório, estabeleça o que ele faz localmente, de quais serviços depende e se sua saída corresponde ao seu projeto.
Verifique o que o repositório realmente fornece
Leia o README junto com o código que envia as solicitações. O nome do repositório sozinho não informa como a coleta funciona.
Tipo de repositório | O que fornece | O que verificar |
Scraper autônomo | Código que recupera páginas e extrai campos | Se você deve fornecer proxies, dependências de navegador ou infraestrutura adicional |
Cliente de API | Código que se comunica com um serviço separado | Credenciais necessárias, endpoints suportados e cobranças de serviço |
Tutorial | Um exemplo demonstrando uma técnica específica | Quais etapas de configuração, validação e tratamento de erros permanecem inacabadas |
Exemplo de serviço comercial | Código de exemplo mostrando como usar o produto de um provedor | Requisitos de conta, limites de teste e dependências pagas |
Por que o seu scraper da Amazon retorna resultados bloqueados, vazios ou incorretos
Quando um scraper da Amazon produz saída inesperada, inspecione a resposta antes de alterar as configurações de conexão. Uma solicitação bloqueada, uma oferta ausente e um seletor quebrado exigem correções diferentes. Rotacionar o IP não vai reparar um parser ou restaurar um local de entrega que nunca foi aplicado.
Sintoma | O que investigar | O que fazer em seguida |
Página de acesso negado ou desafio | Status HTTP, conteúdo da página retornada, frequência de solicitação e restrições de acesso | Pause falhas repetidas e revise o método de coleta. Use tentativas limitadas para erros temporários em vez de solicitar repetidamente uma página de desafio. |
Resposta bem-sucedida, mas sem campos de produto | Se a resposta contém uma página de produto, marcação inesperada ou conteúdo ausente do HTML inicial | Inspecione o HTML retornado. Atualize os seletores somente após confirmar que o conteúdo pretendido está presente; avalie a renderização do navegador se os campos necessários carregarem dinamicamente. |
Preço ausente | Disponibilidade do produto, variante selecionada, oferta do vendedor e o seletor de preço | Compare a página com o registro extraído. Preserve o valor ausente e registre a causa provável em vez de substituir por zero ou coletar um preço não relacionado. |
Informações de entrega incorretas | Se o código postal foi aplicado e mantido durante a navegação ou mudanças de sessão | Verifique o destino observado na página do produto. Reaplique e verifique a localização, depois repita a observação afetada. |
Produtos ou avaliações duplicados | Paginação repetida, entradas sobrepostas e tratamento de identificadores | Remova duplicatas das filas de busca de produtos por marketplace e ASIN, e avaliações por marketplace e ID de avaliação quando disponível. Preserve observações intencionais de diferentes momentos ou localizações. |
Resultados diferentes entre execuções | Momento da coleta, variante selecionada, vendedor, condição, localização de entrega e configurações de sessão | Compare o contexto salvo antes de rotular uma diferença como mudança de preço ou disponibilidade. Repita a verificação sob condições consistentes se a causa permanecer incerta. |
Mantenha um log de erros resumido com a URL de origem, timestamp, status da resposta, categoria de falha e configurações de coleta relevantes. Exclua credenciais e valores de sessão sensíveis. Isso fornece evidências suficientes para distinguir problemas de recuperação de erros de extração e mudanças genuínas na página.
Scraping de dados de produtos da Amazon: melhores práticas e diretrizes éticas
Web scraping ético começa com um propósito definido: quais informações você precisa, como irá obtê-las e o que planeja fazer com elas depois. Se você está procurando por "scraping de dados de produtos da Amazon melhores práticas diretrizes éticas", use as verificações a seguir para transformar essas questões em decisões concretas.
Revise os termos da Amazon e o uso pretendido dos dados
Conteúdo publicamente visível não vem automaticamente com permissão irrestrita para coletar, armazenar ou republicar. As Condições de Uso da Amazon abordam mineração de dados, robôs e ferramentas de extração similares. Revise os termos aplicáveis ao seu marketplace e qualquer API ou serviço de dados que você usar antes de iniciar a coleta.
Considere coleta e reutilização separadamente. Análise interna de preços, publicação de trechos de avaliações e redistribuição de um conjunto de dados de produtos envolvem diferentes usos do material. Confirme as permissões relevantes para seu projeto, incluindo quaisquer restrições sobre retenção, exibição ou redistribuição. Uma assinatura de scraping ou conexão proxy não concede por si só direitos sobre o conteúdo da Amazon.
Preserve a proveniência e documente as limitações
Outra pessoa deve ser capaz de entender de onde um registro veio e o que ele representa sem reconstruir seu scraper. Preserve a URL de origem, marketplace, ASIN, timestamp de coleta, variante selecionada, vendedor e contexto de entrega solicitado e observado quando relevante.
Adicione uma nota de coleta resumida documentando:
A versão da ferramenta ou código e as configurações de coleta.
Filtros, ordenação, paginação e condições de parada.
Campos ausentes, requisições com falha e regras de remoção de duplicatas.
Se as configurações de localização foram verificadas e os resultados foram armazenados em cache.
Lacunas de cobertura conhecidas, particularmente para avaliações de clientes.
Mantenha valores observados separados de suposições ou campos calculados. Se a cobertura for desconhecida, diga isso; se um preço estiver ausente, deixe-o ausente. Essas distinções tornam o conjunto de dados mais fácil de auditar e ajudam a prevenir comparações enganosas.
Para um fluxo de trabalho personalizado, explore o catálogo de proxies do CyberYozh App e escolha a infraestrutura com base nas suas localizações-alvo, duração de sessão necessária e tráfego esperado. Comece com um trabalho de coleta pequeno e validado antes de expandir a carga de trabalho.
