Poppenspeler snelle start

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:

Creëert een nieuw gebruikersprofiel

Puppeteer maakt zijn eigen browsergebruikersprofiel aan, dat het bij elke run opruimt.

Volgende stappen