Puppeter – krótki przewodnik

Aby używać Puppeteer w projekcie, musisz go najpierw zainstalować.

Instalacja

npm i puppeteer
# or "yarn add puppeteer"

Po zainstalowaniu Puppeteer pobierana jest nowa wersja Chromium (ok. 170 MB na komputerze Mac, ok. 282 MB Linux, ok. 280 MB Win), która na pewno będzie działać z tym interfejsem API. Informacje o tym, jak pominąć pobieranie, pobrać plik do innej ścieżki lub pobrać inną przeglądarkę, znajdziesz w artykule Zmienne środowiskowe.

lalkarz

Od wersji 1.7.0 publikujemy pakiet puppeteer-core. Ta wersja Puppeteer domyślnie nie pobiera żadnej przeglądarki.

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

puppeteer-core jest lekką wersją Puppeteer, która umożliwia uruchamianie istniejącej instalacji przeglądarki lub połączenie ze zdalną. Upewnij się, że zainstalowana wersja puppeteer-core jest zgodna z przeglądarką, z którą chcesz się połączyć.

Zobacz puppeter kontra lalkarz-core.

Wykorzystanie

Puppeteer korzysta z najnowszej wersji węzła do konserwacji LTS.

Puppeteer prawdopodobnie zna osoby korzystające z innych platform do testowania przeglądarek. Tworzysz instancję Browser, otwierasz strony, a potem modyfikujesz je za pomocą interfejsu API Puppeteer.

Zapisywanie zrzutu ekranu

Aby np. przejść do usługi https://example.com i zapisać zrzut ekranu jako example.png, zapisz ten kod w usłudze 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 ustawia początkowy rozmiar strony na 800 × 600 pikseli, który określa rozmiar zrzutu ekranu. Rozmiar strony można dostosować za pomocą funkcji Page.setViewport().

Utwórz plik PDF

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

Uruchom skrypt w wierszu poleceń:

node hn.js

Więcej informacji o tworzeniu plików PDF znajdziesz na stronie Page.pdf().

Oceń skrypt w kontekście strony

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

Uruchom skrypt w wierszu poleceń:

node get-dimensions.js

Więcej informacji o metodach oceniania i powiązanych z nimi, np. evaluateOnNewDocument i exposeFunction, znajdziesz w artykule Ocena JavaScriptu.

Domyślne ustawienia środowiska wykonawczego

Korzysta z trybu bez interfejsu graficznego

Puppeteer uruchamia Chromium w trybie bez interfejsu graficznego. Aby uruchomić pełną wersję Chromium, ustaw opcję headless podczas uruchamiania przeglądarki:

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

Korzysta z dołączonej wersji Chromium

Domyślnie Puppeteer pobiera i korzysta z określonej wersji Chromium, dzięki czemu interfejs API od razu będzie działać. Aby użyć Puppeteer w innej wersji Chrome lub Chromium, przekaż ścieżkę pliku wykonywalnego podczas tworzenia instancji Browser:

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

Możesz też używać Puppeteer w przeglądarce Firefox Nightly (obsługa eksperymentalna). Więcej informacji znajdziesz w sekcji Puppeteer.launch().

Więcej informacji:

Tworzy nowy profil użytkownika

Puppeteer tworzy własny profil użytkownika przeglądarki, który jest czyszczony przy każdym uruchomieniu.

Dalsze kroki