Saltar para o conteúdo
Voltar ao blogue

Como extrair dados das páginas do eBay para obter informações sobre preços

Gabriel CiociÚltima atualização em 5 min read
Como extrair dados das páginas do eBay para obter informações sobre preços

Começar a extrair

Experimente a WebScrapingAPI gratuitamente

Receba 1.000 créditos de API gratuitos. Não é necessário cartão de crédito.

Comece já

Deixe-me descrever-lhe a situação. Acabou de lançar a sua loja online de cartuchos de videojogos retro raros e não sabe bem como definir os preços dos produtos.

Definir o preço de um produto é sempre um desafio: se o preço for demasiado baixo, reduz a margem de lucro. Se o preço for demasiado alto, os clientes não se interessarão pelo produto e irão comprá-lo a um concorrente.

Decisões, decisões. O que podemos fazer? Diante deste problema, tem duas soluções:

  • Passar horas todos os dias a pesquisar os preços dos concorrentes
  • Ser inteligente e criar um script automático que faça esta tarefa rotineira por si automaticamente

Consegue adivinhar qual a opção que vamos escolher para este artigo? Como tempo é dinheiro e gosto de facilitar a minha vida sempre que posso, vamos optar pela segunda opção.

Se a primeira opção lhe parece mais divertida, mais vale ler este artigo na mesma. É evidente que tem tempo livre a mais.

Como a extração de dados do eBay ajudará a sua loja online

O eBay é o segundo maior site de comércio eletrónico dos EUA, cobrindo 19,7% do mercado. Com 182 milhões de utilizadores ativos, o eBay é um dos melhores sites que podemos usar para análise de preços.

Para este exemplo, iremos extrair apenas o preço do produto, mas o eBay é um tesouro de dados. Pode sempre extrair a secção de avaliações, extrair palavras-chave negativas, fazer uma análise de sentimento e determinar por que razão os clientes estão insatisfeitos com o produto que compraram.

Também pode extrair a secção «As pessoas que viram este artigo também viram» para descobrir o que os clientes querem. Pode usar esta informação para adicionar novos produtos à sua loja ou criar pacotes com desconto que incluam mais produtos. As pessoas vão adorar!

Como extrair dados do eBay com a WebScrapingAPI

Um dos maiores obstáculos no web scraping é evitar ser bloqueado pelo site em que está interessado. Felizmente, não precisa de se preocupar com isso quando tem a ferramenta certa. Neste caso, a WebScrapingAPI é a melhor solução por três razões simples:

  • Oferecemos 1.000 pedidos por mês com o pacote gratuito, sem necessidade de cartão de crédito.
  • A API tem um conjunto de proxies com mais de 100 milhões de IPs rotativos, garantindo que não haja sobreposição de pedidos.
  • Pode integrar a API deles com uma única linha de código.

Pode perguntar-se por que razão usamos uma API de scraping em vez de criarmos a nossa própria. A razão é muito simples: criar uma ferramenta de scraping do zero pode demorar algumas semanas.

O maior problema não é criar a ferramenta em si, mas sim ajustá-la para que os sites não a identifiquem como um bot.

Chave de acesso à API e autenticação

Aceda ao site da WebScrapingAPI e crie uma conta. Receberá uma chave de API e 1000 pedidos gratuitos.

Instale as dependências

O nosso projeto pessoal é leve e requer apenas duas dependências: axios e cheerio. O Axios é um cliente HTTP baseado em promessas para Node.JS. Utilizamos esta biblioteca para chamar a WebScrapingAPI. A segunda biblioteca, cheerio, é uma implementação enxuta do jQuery para o servidor, e utilizamo-la para analisar a página do produto. Utilize este comando para instalar as dependências:

npm install axios cheerio

Inicie o projeto

Crie um ficheiro index.js e cole o seguinte código nele:

const cheerio = require('cheerio');
const axios = require('axios');

const api_key = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
const product_url = 'https://www.ebay.com/itm/174620280276?epid=4444&hash=item28a82e05d4:g:UpMAAOSwfY5gYDr6';
const api_url = `https://api.webscrapingapi.com/v1?api_key=${api_key}&url=${encodeURIComponent(product_url)}`;
const hour_in_ms = 1000 * 60 * 60;

let product_price = null;

const check_price = async () => {

	// Scrape the document

	// Parse the document

	// Process the results

	// Check for any price change in one hour
	setTimeout(check_price, hour_in_ms)

}

(async () => check_price())()

Como pode ver, usamos uma função recursiva com um tempo limite para extrair a página do produto a cada hora e verificar se houve alguma alteração de preço.

Extrair a(s) página(s)

Substitua // Scrape the document por este código:

let response;

try {
	response = await axios.get(api_url);
} catch (error) {
	console.log(error);
	process.exit();
}

const $ = cheerio.load(response.data);

Este código utiliza a WebScrapingAPI para rastrear a página de produtos do eBay e converte os resultados numa instância cheerio.

Inspecione o código-fonte

Raspámos toda a página do produto, mas precisamos apenas do preço do produto. Podemos usar a instância cheerio para obter o valor do preço. O seletor para o preço do produto é #mainContent [itemprop="price"].

Analise o HTML

Substitua // Analise o documento com o seguinte código:

let price = $('#mainContent [itemprop="price"]').html()

Processar os resultados

O preço vem neste formato: SÍMBOLO DA MOEDA VALOR. Precisamos de extrair apenas o valor. Substitua // Processar os resultados por este código:

price = parseInt(price
	.split(' ')[1]
	.replace('$', '')
	.replace(' ', '')
	.split(',').join('')
	.split('.')[0])

if(!product_price) {
	console.log(`Initial product price:`, price)
} else {
	if(product_price !== price) {
    		console.log('New price for product:', price)
	}
}

product_price = price

Este código irá limpar o preço realizando as seguintes ações:

  • Remover a moeda (US)
  • Remover o símbolo da moeda ($)
  • Remover quaisquer espaços em branco ( )
  • Remover as vírgulas do número
  • Remover as casas decimais

Assim que o preço for analisado, registamos o custo inicial ou o novo preço, caso tenha mudado entre as sessões de scraping.

Conclusão

Com algumas linhas de código e uma ferramenta fantástica como a WebScrapingAPI, conseguimos criar um script que obtém o preço de qualquer produto no eBay. A partir daqui, o céu é o limite. Pode levar o script para o próximo nível e implementar as seguintes melhorias:

  • Extrair o título do produto para facilitar a classificação de preços
  • Extrair vários produtos e comparar os preços
  • Extrair dados de outro site do eBay (como ebay.de ou ebay.ca) e comparar o preço do mesmo produto
  • Inverter a situação e extrair a página do produto da Amazon e fazer uma comparação de preços entre os dois sites para o mesmo produto
  • Implementar notificações por e-mail; deve usar o nodemailer para o fazer
  • Implementar notificações no Slack; pode usar esta biblioteca para concluir a tarefa

A melhor parte desta solução aplicada a um caso de uso real é que pode fazer tudo isto sem gastar dinheiro nem tempo precioso. Isto porque a WebScrapingAPI tem um período de teste gratuito de duas semanas que lhe permite usar todas as suas funcionalidades de graça!

Sobre o autor

Gabriel Cioci, Desenvolvedor Full-Stack @ WebScrapingAPI

Gabriel Cioci

Desenvolvedor Full-Stack

Gabriel Cioci é um programador Full Stack na WebScrapingAPI, responsável pela criação e manutenção dos sites, do painel do utilizador e das principais funcionalidades da plataforma destinadas aos utilizadores.

Web Scraping com AWS Lambda: Guia para Python e Java 2026
Guias

Web Scraping com AWS Lambda: Guia para Python e Java 2026

Resumo: A extração de dados da Web com o AWS Lambda funciona melhor quando cada invocação é curta, delimitada e pode ser repetida de forma independente. Comece com HTTP direto, AWS SAM e S3 e, só depois, adicione SQS, contentores, renderização no navegador, proxies ou uma camada de recuperação gerida, apenas quando a carga de trabalho demonstrar que precisa deles.

Suciu Dan32 min read
Ler artigo
Como utilizar o GoSpider: rastrear, limpar URLs e extrair dados
Guias

Como utilizar o GoSpider: rastrear, limpar URLs e extrair dados

Resumo: O GoSpider é um rastreador de linha de comandos destinado a descobrir URLs, não um extrator completo de dados estruturados. Este guia sobre como utilizar o GoSpider mostra como realizar um rastreio limitado, gerir resultados de forma organizada, fazer a transferência de dados do Colly para CSV e seguir um percurso de diagnóstico para respostas 403 ou páginas que exijam renderização em JavaScript.

Suciu Dan23 min read
Ler artigo
Como fazer o Scrape Redfin: Guia Python para Dados de Propriedade
Guias

Como fazer o Scrape Redfin: Guia Python para Dados de Propriedade

TL;DR: A Redfin expõe pontos de extremidade de API ocultos que retornam JSON estruturado para listagens de propriedades, tornando possível ignorar totalmente a análise HTML frágil. Este guia orienta-o na construção de um scraper Python que extrai dados de aluguer e venda, pesquisa por localização, monitoriza novas listagens através de sitemaps XML e exporta resultados limpos para CSV ou JSON.

Suciu Dan14 min read
Ler artigo

Comece a construir

Pronto para expandir a sua recolha de dados?

Junte-se a mais de 2.000 empresas que utilizam a WebScrapingAPI para extrair dados da Web à escala empresarial, sem quaisquer custos de infraestrutura.