Démarrage rapide de Puppeteer

Pour utiliser Puppeteer dans votre projet, vous devez d'abord l'installer.

Installation

npm i puppeteer
# or "yarn add puppeteer"

Lorsque vous installez Puppeteer, une version récente de Chromium (environ 170 Mo pour Mac, environ 282 Mo pour Linux et environ 280 Mo pour Windows) est compatible avec l'API. Pour ignorer le téléchargement, effectuer le téléchargement dans un autre chemin ou télécharger un autre navigateur, consultez la section Variables d'environnement.

marionnette

Depuis la version 1.7.0, nous publions le package puppeteer-core. Par défaut, cette version de Puppeteer ne télécharge aucun navigateur.

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

puppeteer-core est conçu pour être une version allégée de Puppeteer, qui permet de lancer une installation de navigateur existante ou de se connecter à un navigateur distant. Assurez-vous que la version de Puppeteer-core que vous installez est compatible avec le navigateur auquel vous souhaitez vous connecter.

Voir marionnette et marionnettiste.

Utilisation

Puppeteer suit la dernière version LTS de maintenance de Node.

Puppeteer est probablement familier aux utilisateurs d'autres frameworks de test de navigateurs. Vous allez créer une instance de Browser, ouvrir des pages, puis les manipuler avec l'API Puppeteer.

Enregistrer une capture d'écran

Par exemple, pour accéder à https://example.com et enregistrer une capture d'écran sous example.png, enregistrez le code suivant dans 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 définit la taille de la page initiale sur 800 × 600 px, ce qui définit la taille de la capture d'écran. La taille de la page peut être personnalisée avec Page.setViewport().

Créer un PDF

Enregistrez le fichier sous le nom 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();
})();

Exécutez le script sur la ligne de commande:

node hn.js

Consultez Page.pdf() pour en savoir plus sur la création de PDF.

Évaluer le script dans le contexte de la page

Enregistrez le fichier sous 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();
})();

Exécutez le script sur la ligne de commande:

node get-dimensions.js

Consultez la section Évaluer JavaScript pour en savoir plus sur l'évaluation et les méthodes associées telles que evaluateOnNewDocument et exposeFunction.

Paramètres d'exécution par défaut

Utilise le mode sans interface graphique

Puppeteer lance Chromium en mode sans interface graphique. Pour lancer une version complète de Chromium, définissez l'option headless au lancement d'un navigateur:

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

Exécution d'une version intégrée de Chromium

Par défaut, Puppeteer télécharge et utilise une version spécifique de Chromium pour que son API fonctionne immédiatement. Pour utiliser Puppeteer avec une autre version de Chrome ou de Chromium, transmettez le chemin d'accès de l'exécutable lors de la création d'une instance Browser:

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

Vous pouvez également utiliser Puppeteer avec Firefox Nightly (support expérimental). Pour en savoir plus, consultez la page Puppeteer.launch().

Pour en savoir plus, consultez ce document :

Crée un nouveau profil utilisateur

Puppeteer crée son propre profil utilisateur de navigateur qu'il nettoie à chaque exécution.

Étapes suivantes