Om Puppeteer in uw project te gebruiken, moet u het eerst installeren.
Installatie
npm i puppeteer
# or "yarn add puppeteer"
Wanneer u Puppeteer installeert, downloadt het een recente versie van Chromium (~170MB Mac, ~282MB Linux, ~280MB Win) die gegarandeerd werkt met de API. Zie Omgevingsvariabelen om de download over te slaan, naar een ander pad te downloaden of een andere browser te downloaden.
poppenspeler-kern
Sinds versie 1.7.0 publiceren we het puppeteer-core
. Deze versie van Puppeteer downloadt standaard geen enkele browser.
npm i puppeteer-core
# or "yarn add puppeteer-core"
puppeteer-core
is bedoeld als een lichtgewicht versie van Puppeteer voor het starten van een bestaande browserinstallatie of om verbinding te maken met een externe browser. Zorg ervoor dat de versie van puppeteer-core die u installeert compatibel is met de browser waarmee u verbinding wilt maken.
Zie poppenspeler versus poppenspelerkern .
Gebruik
Puppeteer volgt de nieuwste LTS-onderhoudsversie van Node.
Puppeteer is waarschijnlijk bekend bij mensen die andere browsertestframeworks gebruiken. U maakt een exemplaar van Browser
, opent pagina's en manipuleert ze vervolgens met Puppeteer's API .
Sla een schermafbeelding op
Als u bijvoorbeeld naar https://example.com
wilt navigeren en een schermafbeelding wilt opslaan als example.png
, slaat u de volgende code op 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 stelt een aanvankelijk paginaformaat in op 800×600px, wat de schermgrootte definieert. Het paginaformaat kan worden aangepast met Page.setViewport() .
Maak een PDF
Sla het bestand op als 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();
})();
Voer het script uit op de opdrachtregel:
node hn.js
Zie Page.pdf() voor meer informatie over het maken van pdf's.
Evalueer het script in de context van de pagina
Bestand opslaan als 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();
})();
Voer het script uit op de opdrachtregel:
node get-dimensions.js
Zie JavaScript evalueren voor meer informatie over evalueren en gerelateerde methoden zoals evaluateOnNewDocument
en exposeFunction
.
Standaard runtime-instellingen
Maakt gebruik van de Headless-modus
Poppenspeler lanceert Chromium in hoofdloze modus . Om een volledige versie van Chromium te starten, stelt u de headless
optie in wanneer u een browser start:
const browser = await puppeteer.launch({ headless: false }); // default is true
Voert een gebundelde versie van Chromium uit
Standaard downloadt en gebruikt Puppeteer een specifieke versie van Chromium, zodat de API gegarandeerd direct werkt. Als u Puppeteer met een andere versie van Chrome of Chromium wilt gebruiken, geeft u het pad van het uitvoerbare bestand door wanneer u een Browser
maakt:
const browser = await puppeteer.launch({ executablePath: '/path/to/Chrome' });
U kunt Puppeteer ook gebruiken met Firefox Nightly (experimentele ondersteuning). Zie Puppeteer.launch()
voor meer informatie.
Voor meer informatie:
- Wat is het verschil tussen chroom en chroom? van How-To Geek.
- In de Chromium-documenten worden enkele verschillen voor Linux-gebruikers beschreven.
Creëert een nieuw gebruikersprofiel
Puppeteer maakt zijn eigen browsergebruikersprofiel aan, dat het bij elke run opruimt.
Volgende stappen
- Meer informatie over Headless Chrome .
- Bekijk de voorbeelden .