
Adélia Cruz
Neural Network Developer

A coleta de dados da web se tornou uma ferramenta essencial para automatizar a coleta de dados e monitorar sites em busca de alterações. Nesta postagem do blog, exploraremos como usar o Puppeteer, uma biblioteca Node.js, para coleta de dados da web, detectar alterações em um site e tirar capturas de tela dessas alterações.
Puppeteer é uma biblioteca Node.js que fornece uma API de alto nível para controlar o Chrome ou Chromium sem cabeça por meio do protocolo DevTools. Ele pode ser usado para coleta de dados da web, testes automatizados ou até mesmo gerar capturas de tela e PDFs de páginas da web.
Antes de começar, certifique-se de ter o seguinte instalado:
Você pode instalar o Puppeteer executando o seguinte comando no seu terminal:
npm install puppeteer
Para começar, vamos criar um coletor de dados da web básico que navega até um site e extrai o conteúdo de texto.
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
// Navegue até o site
await page.goto('https://example.com');
// Extraia o conteúdo de texto
const content = await page.evaluate(() => {
return document.querySelector('h1').innerText;
});
console.log('Conteúdo da página:', content);
await browser.close();
})();
Este script abre um navegador sem cabeça, navega até example.com e extrai o texto do elemento <h1>. Você pode substituir o URL pelo site que deseja coletar dados e ajustar o seletor para corresponder ao elemento que lhe interessa.
O Puppeteer permite que você tire capturas de tela de páginas da web facilmente. Você pode capturar capturas de tela de página inteira ou áreas específicas da página.
Aqui está como tirar uma captura de tela de página inteira:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
// Navegue até o site
await page.goto('https://example.com');
// Tire uma captura de tela de página inteira
await page.screenshot({ path: 'screenshot.png', fullPage: true });
await browser.close();
})();
Este script salva uma captura de tela de toda a página como screenshot.png. Você pode modificar o path para especificar um nome de arquivo ou local diferente.
Monitorar um site em busca de alterações é um recurso útil na coleta de dados da web. Você pode fazer isso verificando repetidamente o conteúdo do site e comparando-o com uma versão salva anteriormente.
Aqui está um exemplo de como detectar alterações de texto e tirar uma captura de tela se o conteúdo mudar:
const puppeteer = require('puppeteer');
const fs = require('fs');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
// Navegue até o site
await page.goto('https://example.com');
// Extraia o conteúdo de texto
const currentContent = await page.evaluate(() => {
return document.querySelector('h1').innerText;
});
const previousContentPath = 'previous-content.txt';
let previousContent = '';
// Verifique se o conteúdo anterior existe
if (fs.existsSync(previousContentPath)) {
previousContent = fs.readFileSync(previousContentPath, 'utf8');
}
// Compare o conteúdo atual com o conteúdo anterior
if (currentContent !== previousContent) {
console.log('O conteúdo mudou!');
// Salve o novo conteúdo
fs.writeFileSync(previousContentPath, currentContent);
// Tire uma captura de tela da alteração
await page.screenshot({ path: `screenshot-${Date.now()}.png`, fullPage: true });
console.log('Captura de tela salva!');
} else {
console.log('Nenhuma alteração detectada.');
}
await browser.close();
})();
Neste exemplo:
<h1>.previous-content.txt).previous-content.txt para comparações futuras.Você pode usar o Node.js para agendar este script para executar em intervalos usando o pacote node-cron.
Primeiro, instale node-cron:
npm install node-cron
Agora, modifique seu script para executar em um intervalo definido (por exemplo, a cada 5 minutos):
const puppeteer = require('puppeteer');
const fs = require('fs');
const cron = require('node-cron');
cron.schedule('*/5 * * * *', async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
const currentContent = await page.evaluate(() => {
return document.querySelector('h1').innerText;
});
const previousContentPath = 'previous-content.txt';
let previousContent = '';
if (fs.existsSync(previousContentPath)) {
previousContent = fs.readFileSync(previousContentPath, 'utf8');
}
if (currentContent !== previousContent) {
console.log('O conteúdo mudou!');
fs.writeFileSync(previousContentPath, currentContent);
await page.screenshot({ path: `screenshot-${Date.now()}.png`, fullPage: true });
console.log('Captura de tela salva!');
} else {
console.log('Nenhuma alteração detectada.');
}
await browser.close();
});
Este script será executado a cada 5 minutos (*/5 * * * *) e verificará se há alterações no site. Se ele detectar uma alteração, tirará uma captura de tela e registrará a atualização.
Pegue seu Código Bônus para as melhores soluções de captcha em CapSolver: scrape. Após resgatá-lo, você receberá um bônus extra de 5% após cada recarga, ilimitadamente.

Puppeteer é uma ferramenta poderosa para coleta de dados da web e automatização de tarefas de navegador. Neste post, demonstramos como usar o Puppeteer para coleta de dados da web básica, detectar alterações no site e capturar capturas de tela dessas alterações. Com essas técnicas, você pode monitorar sites e acompanhar atualizações automaticamente. Certifique-se de verificar as políticas de coleta de dados da web para evitar violar os termos de serviço.
Guia de captcha para fluxos de trabalho de dados aprovados: aprenda os tipos de desafios, tratamento de API, consistência de proxies, tentativas de repetição e uso responsável.

API de resolução rápida de CAPTCHA para automação: compare fluxos de trabalho de tokens, desafios suportados, verificações de latência e integração responsável da CapSolver.
