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:
- Czym różni się Chromium od Chrome? (w języku angielskim) według poradnika „How-To Geek”.
- W Dokumentach Chromium opisaliśmy niektóre różnice w przypadku użytkowników systemu Linux.
Tworzy nowy profil użytkownika
Puppeteer tworzy własny profil użytkownika przeglądarki, który jest czyszczony przy każdym uruchomieniu.
Dalsze kroki
- Dowiedz się więcej o Chrome bez interfejsu graficznego.
- Przejrzyj przykłady.