Inicio rápido de marioneta

Para usar Puppeteer en tu proyecto, primero debes instalarlo.

Instalación

npm i puppeteer
# or "yarn add puppeteer"

Cuando instalas Puppeteer, se descarga una versión reciente de Chromium (aproximadamente 170 MB en Mac, ~282 MB en Linux, ~280 MB Win) que está garantizado que funcionará con la API. Para omitir la descarga, descarga en otra ruta de acceso o descarga un navegador diferente, consulta Variables de entorno.

núcleo-titular

A partir de la versión 1.7.0, publicamos el paquete puppeteer-core. Esta versión de Puppeteer no descarga ningún navegador de forma predeterminada.

npm i puppeteer-core
# or "yarn add puppeteer-core"

puppeteer-core se diseñó como una versión liviana de Puppeteer para iniciar la instalación de un navegador existente o conectarse a uno remoto. Asegúrate de que la versión de puppeteer-core que instales sea compatible con el navegador al que pretendes conectarte.

Consulta titular frente a núcleo de tiburón.

Uso

Puppeteer sigue la versión de LTS de mantenimiento más reciente de Node.

Es probable que Puppeteer sea familiar para las personas que usan otros frameworks de prueba de navegadores. Crearás una instancia de Browser, abrirás páginas y podrás manipularlas con la API de Puppeteer.

Guarda una captura de pantalla

Por ejemplo, para navegar hasta https://example.com y guardar una captura de pantalla como example.png, guarda el siguiente código en example.js.

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://example.com');
  await page.screenshot({ path: 'example.png' });

  await browser.close();
})();

Puppeteer establece un tamaño de página inicial en 800 × 600 px, que define el tamaño de la captura de pantalla. El tamaño de la página se puede personalizar con Page.setViewport().

Crear un PDF

Guarda el archivo como hn.js.

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://news.ycombinator.com', {
    waitUntil: 'networkidle2',
  });
  await page.pdf({ path: 'hn.pdf', format: 'a4' });

  await browser.close();
})();

Ejecuta la secuencia de comandos en la línea de comandos:

node hn.js

Consulta Page.pdf() para obtener más información sobre la creación de archivos PDF.

Evaluar la secuencia de comandos en el contexto de la página

Guarda el archivo como get-dimensions.js:

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://example.com');

  // Get the "viewport" of the page, as reported by the page.
  const dimensions = await page.evaluate(() => {
    return {
      width: document.documentElement.clientWidth,
      height: document.documentElement.clientHeight,
      deviceScaleFactor: window.devicePixelRatio,
    };
  });

  console.log('Dimensions:', dimensions);

  await browser.close();
})();

Ejecuta la secuencia de comandos en la línea de comandos:

node get-dimensions.js

Consulta Evalúa JavaScript para obtener más información sobre la evaluación y los métodos relacionados, como evaluateOnNewDocument y exposeFunction.

Configuración predeterminada del entorno de ejecución

Usa el modo sin interfaz gráfica

Puppeteer inicia Chromium en modo sin interfaz gráfica. Para iniciar una versión completa de Chromium, configura la opción headless cuando inicies un navegador:

const browser = await puppeteer.launch({ headless: false }); // default is true

Ejecuta una versión empaquetada de Chromium.

De forma predeterminada, Puppeteer descarga y usa una versión específica de Chromium, por lo que se garantiza que su API funcione de inmediato. Para usar Puppeteer con una versión diferente de Chrome o Chromium, pasa la ruta de acceso del archivo ejecutable cuando crees una instancia de Browser:

const browser = await puppeteer.launch({ executablePath: '/path/to/Chrome' });

También puedes usar Puppeteer con Firefox Nightly (compatibilidad experimental). Consulta Puppeteer.launch() para obtener más información.

Para obtener más información, siga estas sugerencias:

Crea un perfil de usuario nuevo.

Puppeteer crea su propio perfil de usuario del navegador, que borra en cada ejecución.

Próximos pasos