Kurzanleitung für Puppeteer

Wenn Sie Puppeteer in Ihrem Projekt verwenden möchten, müssen Sie es zuerst installieren.

Installation

npm i puppeteer
# or "yarn add puppeteer"

Wenn Sie Puppeteer installieren, wird eine aktuelle Version von Chromium heruntergeladen (~170 MB für einen Mac, ~282 MB für Linux, ~280 MB für Windows), die garantiert mit der API funktioniert. Wenn Sie den Download überspringen möchten, laden Sie in einen anderen Pfad herunter oder laden Sie einen anderen Browser herunter. Informationen dazu finden Sie unter Umgebungsvariablen.

Puppeteer Core

Seit Version 1.7.0 veröffentlichen wir das Paket puppeteer-core. Diese Version von Puppeteer lädt standardmäßig keinen Browser herunter.

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

puppeteer-core ist eine vereinfachte Version von Puppeteer, um eine vorhandene Browserinstallation zu starten oder eine Verbindung zu einem Remote-Browser herzustellen. Vergewissern Sie sich, dass die von Ihnen installierte Puppeteer-Core-Version mit dem Browser kompatibel ist, zu dem Sie eine Verbindung herstellen möchten.

Siehe puppenteer gegen puppeteer-core.

Nutzung

Puppeteer verwendet die neueste Wartungs-LTS-Version von Node.

Puppeteer ist wahrscheinlich mit Leuten vertraut, die andere Frameworks zum Testen von Browsern verwenden. Sie erstellen eine Instanz von Browser, öffnen Seiten und bearbeiten sie dann mit der Puppeteer-API.

Screenshot speichern

Wenn Sie beispielsweise zu https://example.com gehen und einen Screenshot als example.png speichern möchten, speichern Sie den folgenden Code in 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 legt eine anfängliche Seitengröße auf 800 × 600 Pixel fest, wodurch die Größe des Screenshots definiert wird. Die Seitengröße kann mit Page.setViewport() angepasst werden.

PDF erstellen

Datei als hn.js speichern.

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();
})();

Führen Sie das Skript in der Befehlszeile aus:

node hn.js

Weitere Informationen zum Erstellen von PDFs finden Sie unter Page.pdf().

Skript im Kontext der Seite bewerten

Datei als get-dimensions.js speichern:

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();
})();

Führen Sie das Skript in der Befehlszeile aus:

node get-dimensions.js

Weitere Informationen zu Auswertungsmethoden und verwandten Methoden wie evaluateOnNewDocument und exposeFunction finden Sie unter JavaScript auswerten.

Standard-Laufzeiteinstellungen

Monitorloser Modus

Puppeteer startet Chromium im monitorlosen Modus. Wenn Sie eine Vollversion von Chromium starten möchten, legen Sie beim Starten eines Browsers die Option headless fest:

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

Führt eine gebündelte Version von Chromium aus

Standardmäßig lädt Puppeteer eine bestimmte Version von Chromium herunter und verwendet sie, damit seine API sofort einsatzbereit ist. Wenn Sie Puppeteer mit einer anderen Version von Chrome oder Chromium verwenden möchten, übergeben Sie beim Erstellen einer Browser-Instanz den Pfad der ausführbaren Datei:

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

Sie können Puppeteer mit Firefox Nightly verwenden (experimentelle Unterstützung). Weitere Informationen finden Sie unter Puppeteer.launch().

Weitere Informationen:

Erstellt ein neues Nutzerprofil

Puppeteer erstellt ein eigenes Browser-Nutzerprofil, das bei jedem Durchlauf bereinigt wird.

Nächste Schritte