10-12-2025

Cómo hacer captura de pantalla de una web con nodejs

Hacer una captura de pantalla con NodeJS se puede hacer de varias maneras y con varios módulos de npm. En este post voy a explicar cómo hacer captura de pantalla de una web con NodeJS con Puppeteer. Puppeteer es un módulo mantenido por el equipo de Chrome y funciona perfectamente en modo sin cabeceras.
Lo primero es instalara el módulo Puppeteer:

npm install puppeteer
Y luego tener un fichero con el código de NodeJS:

const puppeteer = require('puppeteer');

(async () => {
  // Lanzar navegador headless
  const browser = await puppeteer.launch({
headless: true,  // o "new" en versiones recientes
args: ['--no-sandbox', '--disable-setuid-sandbox']
  });

  const page = await browser.newPage();

  // Opcional: configurar tamaño de viewport
  await page.setViewport({ width: 1920, height: 1080 });

  await page.goto('https://www.example.com', {
waitUntil: 'networkidle2',  // espera a que no haya más de 2 peticiones en 500ms
timeout: 30000
  });

  // Captura completa de la página (scroll automático)
  await page.screenshot({
path: 'captura-completa.png',
fullPage: true,  // importante para páginas largas
type: 'png',// o 'jpeg' si quieres más compresión
quality: 100// solo para jpeg
  });

  // También puedes capturar solo un elemento específico
  // const elemento = await page.$('#mi-div');
  // await elemento.screenshot({ path: 'solo-div.png' });

  await browser.close();
  console.log('Captura guardada como captura-completa.png');
})();