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:
- Was ist der Unterschied zwischen Chromium und Chrome? in How-To Geek.
- In der Chromium-Dokumentation werden einige Unterschiede für Linux-Nutzer beschrieben.
Erstellt ein neues Nutzerprofil
Puppeteer erstellt ein eigenes Browser-Nutzerprofil, das bei jedem Durchlauf bereinigt wird.