Exemplo de node.js com puppeteer

Exemplo de node.js com puppeteer


Neste tutorial, você verá:

✔️ Criar um aplicativo do zero usando o node.js com puppeteer;
✔️ Passo a passo para realizar o deploy do seu aplicativo ;
✔️ Configurar um domínio para acesso do seu aplicativo com ssl

📌 Simplifique seu processo de deploy com o nosso painel ICP!

Aprenda, de forma prática e simples, com criar um aplicativo node.js com puppeteer e subir em um ambiente com domínio e ssl e poucos minutos.

📌 Passo 1: Iniciar um projeto Node.js

npm init -y

📌 Passo 2: Instalar dependências

npm install puppeteer express which

📌 Passo 3: Crie o arquivo index.js com o seguinte conteúdo:

const puppeteer = require('puppeteer');
const express = require('express');
const os = require('os');
const which = require('which');

// Função para localizar o caminho do Chrome/Chromium
function getChromePath() {
    const platform = os.platform(); // Detecta o sistema operacional
    let chromePath;

    if (platform === 'linux') {
        // Para Linux
        chromePath = which.sync('google-chrome', { nothrow: true }) || which.sync('chromium', { nothrow: true });
    } else if (platform === 'darwin') {
        // Para macOS
        chromePath = '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome';
    } else if (platform === 'win32') {
        // Para Windows
        chromePath = 'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe';
    }
    if (!chromePath) {
        throw new Error('Navegador Google Chrome/Chromium não encontrado. Certifique-se de que está instalado no sistema.');
    }

    return chromePath;
}

// Função para inicializar o navegador Puppeteer
async function inicializarNavegador() {
    const chromePath = getChromePath();

    return puppeteer.launch({
        executablePath: chromePath, // Define o caminho do navegador
        headless: 'new', // Usa o novo modo headless
        args: ['--no-sandbox', '--disable-setuid-sandbox'], // Opções necessárias para ambientes Linux e root
    });
}

// Configura o servidor Express
const app = express();
const port = 3003;

app.get('/', async (req, res) => {
    try {
        const navegador = await inicializarNavegador();
        const pagina = await navegador.newPage();
        await pagina.goto('https://www.integrator.com.br');
        const dataAtual = new Date().toISOString().replace(/[:.-]/g, '');
        const nomeArquivo = `captura_${dataAtual}.png`;
        await pagina.screenshot({ path: nomeArquivo });
        console.log(`Screenshot salva: ${nomeArquivo}`);
        await navegador.close();
        res.send(`Screenshot salva como: ${nomeArquivo}`);
    } catch (error) {
        console.error('Erro ao executar o Puppeteer:', error);
        res.status(500).send('Erro ao capturar a tela.');
    }
});

app.listen(port, () => {
    console.log(`Servidor iniciado na porta ${port}`);
});

📌 Passo 4: Rodar a aplicação.

Inicie o projeto:

node index.js

Acessar ele localmente:

http://localhost:3003

📌 Passo 5: Publicar o seu aplicativo node.js online com um domínio com SSL.

Para isso vamos usar o Painel ICP, no video abaixo mostramos todo o processo de forma simples e rápida.

Até a próxima!