Como recolher páginas do eBay para obter informações sobre preços
Gabriel Cioci em 10 de agosto de 2021
Deixe-me pintar um quadro para si. Acabou de lançar a sua loja online de cartuchos de jogos de vídeo retro raros e não sabe bem como lidar com o preço dos produtos.
A fixação do preço de um produto é sempre um desafio: se o preço for demasiado baixo, a margem de lucro é reduzida. Se o preço for demasiado elevado, os clientes não estarão interessados no produto e comprá-lo-ão a um concorrente.
Decisões, decisões. O que é que podemos fazer? Perante este problema, há duas soluções:
- Passar horas todos os dias a pesquisar os preços dos concorrentes
- Seja esperto e crie um script automático que faça esta tarefa mundana por si automaticamente
Consegue adivinhar qual a opção que vamos escolher para este artigo? Porque tempo é dinheiro e eu gosto de facilitar a minha vida sempre que posso, vamos escolher a segunda opção.
Se a primeira opção lhe parece mais divertida, mais vale ler este artigo na mesma. É evidente que tem demasiado tempo livre nas suas mãos.
Como é que a recolha de dados do eBay pode ajudar a sua loja online
O eBay é o segundo maior sítio de comércio eletrónico em linha nos EUA, cobrindo 19,7% do mercado. Com 182 milhões de utilizadores activos, o eBay é um dos melhores sítios que podemos utilizar para obter informações sobre preços.
Para este exemplo, só vamos recolher o preço do produto, mas o eBay é um tesouro de dados. Pode sempre consultar a secção de críticas, extrair palavras-chave negativas, fazer uma análise de sentimentos e determinar por que razão os clientes estão insatisfeitos com o produto que compraram.
Também pode consultar a secção As pessoas que viram este artigo também viram para saber o que os clientes pretendem. Pode utilizar esta informação para adicionar novos produtos à sua loja ou criar pacotes de descontos com mais produtos. As pessoas vão adorá-los!
Como recolher informação sobre o eBay com a WebScrapingAPI
Um dos maiores obstáculos na recolha de dados da Web é evitar um bloqueio do sítio Web em que está interessado. Felizmente, não precisa de se preocupar com isso quando tem a ferramenta certa. Neste caso, o WebScrapingAPI é a melhor solução por três simples razões:
- Oferecemos 1.000 pedidos por mês com o pacote gratuito, sem necessidade de cartão.
- A API tem um pool de proxy de mais de 100 milhões de IPs rotativos, garantindo que não haja sobreposição de pedidos.
- Pode integrar-se na sua API com uma única linha de código.
Poderá perguntar-se por que razão utilizamos uma API de recolha de dados em vez de construirmos a nossa própria API. A razão é muito simples: construir uma ferramenta de recolha de dados de raiz pode demorar algumas semanas.
O maior problema não é criar a ferramenta em si, mas sim aperfeiçoá-la, para que os sítios não a assinalem como um bot.
Chave de acesso e autenticação da API
Aceda ao sítio WebScrapingAPI e crie uma conta. Receberá uma chave de API e 1.000 pedidos gratuitamente.
Instalar as dependências
Nosso projeto de estimação é leve e requer apenas duas dependências: axios e cheerio. Axios é um cliente HTTP baseado em promessas para Node.JS. Usamos essa biblioteca para chamar a WebScrapingAPI. A segunda biblioteca, cheerio, é uma implementação enxuta do jQuery para o servidor, e nós a usamos para analisar a página do produto. Use este comando para instalar as dependências:
npm install axios cheerio
Arranque do projeto
Crie um ficheiro index.js e cole nele o seguinte código:
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, utilizamos uma função recursiva com um tempo limite para procurar a página do produto de hora a hora e verificar qualquer alteração de preço.
Extrair a(s) página(s)
Substituir // Extrair o documento com 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 recolher a página do produto eBay e converte os resultados numa instância do cheerio.
Inspecionar o código fonte
Recolhemos toda a página do produto, mas precisamos apenas do preço do produto. Podemos usar a instância do cheerio para obter o valor do preço. O seletor para o preço do produto é #mainContent [itemprop="price"].
Analisar o HTML
Substituir // Analisar o documento com o seguinte código:
let price = $('#mainContent [itemprop="price"]').html()
Processar os resultados
O preço apresenta-se neste formato: SÍMBOLO DA MOEDA MONTANTE. Precisamos de extrair apenas o montante. Substituir // Processa os resultados com 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 através das seguintes acções:
- Remover a moeda (US)
- Remover o símbolo de moeda ($)
- Remover os espaços em branco ( )
- Remover vírgulas do número
- Remover as casas decimais
Assim que o preço é analisado, registamos o custo inicial ou o novo preço, se tiver sido alterado entre as sessões de recolha de dados.
Conclusão
Com algumas linhas de código e uma ferramenta fantástica como o WebScrapingAPI, conseguimos ter um script que vai buscar o preço de qualquer produto ao 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
- Procurar vários produtos e comparar o preço
- Recolha de outro sítio Web do eBay (como ebay.de ou ebay.ca) e compare o preço do mesmo produto
- Inverter a tabela e recolher a página de produto da Amazon e fazer uma comparação de preços entre os dois sítios para o mesmo produto
- Implementar notificações por correio eletrónico; deve utilizar o nodemailer para o fazer
- Implementar notificações do Slack; pode utilizar esta biblioteca para concluir a tarefa
A melhor parte desta solução aplicada a um caso de utilização real é que pode fazer tudo isto sem gastar dinheiro nem tempo precioso. Isto porque o WebScrapingAPI tem um teste gratuito de duas semanas que lhe permite utilizar todas as suas funcionalidades gratuitamente!
Notícias e actualizações
Mantenha-se atualizado com os mais recentes guias e notícias sobre raspagem da Web, subscrevendo a nossa newsletter.
We care about the protection of your data. Read our <l>Privacy Policy</l>.Privacy Policy.

Artigos relacionados

Explore o poder transformador da recolha de dados da Web no sector financeiro. Desde dados de produtos a análises de sentimentos, este guia oferece informações sobre os vários tipos de dados da Web disponíveis para decisões de investimento.


Comece a utilizar o WebScrapingAPI, a derradeira solução de raspagem da Web! Recolha dados em tempo real, contorne sistemas anti-bot e beneficie de apoio profissional.


Descubra como extrair e organizar eficientemente dados para raspagem da Web e análise de dados através de análise de dados, bibliotecas de análise de HTML e metadados schema.org.
