CAPSOLVER
Blog
Web Scraping com Puppeteer: Detectando Mudanças no Site e Tirando Capturas de Tela

Raspagem da Web com Puppeteer: Detectando Mudanças no Site e Tirando Capturas de Tela

Logo of CapSolver

Adélia Cruz

Neural Network Developer

07-Oct-2024

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.

O que é Puppeteer?

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.

Pré-requisitos

Antes de começar, certifique-se de ter o seguinte instalado:

Você pode instalar o Puppeteer executando o seguinte comando no seu terminal:

bash Copy
npm install puppeteer

Coleta de dados da web básica com 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.

javascript Copy
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.

Tirando capturas de tela com Puppeteer

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:

javascript Copy
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.

Detectando alterações no site

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:

javascript Copy
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:

  • O script extrai o conteúdo do elemento <h1>.
  • Ele compara o conteúdo atual com uma versão salva anteriormente (previous-content.txt).
  • Se uma alteração for detectada, ele tira uma captura de tela e a salva com um carimbo de data/hora no nome do arquivo, garantindo que cada captura de tela seja única.
  • O novo conteúdo é salvo em previous-content.txt para comparações futuras.

Agendando o coletor de dados para executar regularmente

Você pode usar o Node.js para agendar este script para executar em intervalos usando o pacote node-cron.

Primeiro, instale node-cron:

bash Copy
npm install node-cron

Agora, modifique seu script para executar em um intervalo definido (por exemplo, a cada 5 minutos):

javascript Copy
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.

Código bônus

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.

Conclusão

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.

Copy

Declaração de Conformidade: As informações fornecidas neste blog são apenas para fins informativos. A CapSolver está comprometida em cumprir todas as leis e regulamentos aplicáveis. O uso da rede CapSolver para atividades ilegais, fraudulentas ou abusivas é estritamente proibido e será investigado. Nossas soluções de resolução de captcha melhoram a experiência do usuário enquanto garantem 100% de conformidade ao ajudar a resolver dificuldades de captcha durante a coleta de dados públicos. Incentivamos o uso responsável de nossos serviços. Para mais informações, visite nossos Termos de Serviço e Política de Privacidade.

Mais

Ampliação da Coleta de Dados para Treinamento de LLM: Resolver CAPTCHAS em Escala
Escala da Coleta de Dados para Treinamento de Grandes Modelos de Linguagem: Resolvendo CAPTCHAs em Escala

Aprenda como escalar a coleta de dados para o treinamento de LLM resolvendo CAPTCHAs em larga escala. Descubra estratégias automatizadas para construir conjuntos de dados de alta qualidade para modelos de IA.

AI
Logo of CapSolver

Adélia Cruz

27-Mar-2026

Corrigir o Erro 1005 do Cloudflare: Guia de Web Scraping e Soluções
Corrigir o Erro 1005 do Cloudflare: Guia de Web Scraping e Soluções

Aprenda a corrigir o Erro 1005 do Cloudflare acesso negado durante o web scraping. Descubra soluções como proxies residenciais, fingerprinting de navegador e CapSolver para CAPTCHA. Otimize sua extração de dados.

Cloudflare
Logo of CapSolver

Rajinder Singh

27-Mar-2026

HyperBrowser com CapSolver
Como resolver qualquer CAPTCHA no HyperBrowser usando o CapSolver (Guia Completo de Configuração)

Resolva qualquer CAPTCHA no HyperBrowser usando o CapSolver. Automatize reCAPTCHA, Turnstile, AWS WAF e de forma mais fácil.

AI
Logo of CapSolver

Adélia Cruz

26-Mar-2026

Como resolver CAPTCHA do Amazon AWS WAF na automação de navegadores
Como resolver o CAPTCHA do Amazon AWS WAF na Automação de Navegador

Domine a resolução de desafios CAPTCHA do Amazon AWS WAF na automação de navegador com estratégias especializadas. Aprenda a integrar o CapSolver para fluxos de automação sem interrupções e eficientes. Este guia aborda soluções baseadas em tokens e em classificação.

AWS WAF
Logo of CapSolver

Nikolai Smirnov

24-Mar-2026

Resolvendo Captchas para Agentes de IA de Monitoramento de Preços: Um Guia Passo a Passo
Resolvendo Captchas para Agentes de IA de Monitoramento de Preços: Um Guia Passo a Passo

Aprenda como resolver efetivamente CAPTCHAs para agentes de inteligência artificial de monitoramento de preços com o CapSolver. Este guia passo a passo garante coleta de dados ininterrupta e insights de mercado aprimorados.

AI
Logo of CapSolver

Adélia Cruz

24-Mar-2026

Resolva CAPTCHAs com NanoClaw e CapSolver
Como resolver automaticamente CAPTCHAs com NanoClaw e CapSolver

Guia passo a passo para usar o CapSolver com o NanoClaw para resolver automaticamente reCAPTCHA, Turnstile, AWS WAF e outros CAPTCHAs. Funciona com agentes do Claude AI, sem código e navegadores múltiplos.

AI
Logo of CapSolver

Aloísio Vítor

20-Mar-2026