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!