Untuk menggunakan Puppeteer dalam project, Anda harus menginstalnya terlebih dahulu.
Penginstalan
npm i puppeteer
# or "yarn add puppeteer"
Saat Anda menginstal Puppeteer, Puppeteer akan mendownload versi terbaru Chromium (~170 MB Mac, ~282 MB Linux, ~280 MB Win) yang dijamin berfungsi dengan API. Untuk melewati download, mendownload ke jalur lain, atau mendownload browser lain, lihat Variabel lingkungan.
boneka-coret
Sejak versi 1.7.0, kami memublikasikan paket puppeteer-core
. Versi
Puppeteer ini tidak mendownload browser apa pun secara default.
npm i puppeteer-core
# or "yarn add puppeteer-core"
puppeteer-core
dimaksudkan sebagai versi ringan Puppeteer untuk meluncurkan penginstalan browser yang sudah ada atau untuk terhubung ke browser jarak jauh. Pastikan versi puppeteer-core yang Anda instal kompatibel dengan browser yang ingin Anda sambungkan.
Lihat puppeteer versus puppeteer-core.
Penggunaan
Puppeteer mengikuti Node pemeliharaan versi terbaru.
Puppeteer mungkin tidak asing bagi orang-orang yang menggunakan framework pengujian browser lainnya.
Anda membuat instance Browser
, membuka halaman, lalu memanipulasinya dengan
API Puppeteer.
Menyimpan screenshot
Misalnya, untuk membuka https://example.com
dan menyimpan screenshot sebagai
example.png
, simpan kode berikut ke 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 menetapkan ukuran halaman awal ke 800×600 piksel, yang menentukan ukuran screenshot. Ukuran halaman dapat disesuaikan dengan Page.setViewport().
Membuat PDF
Simpan file sebagai 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();
})();
Jalankan skrip di command line:
node hn.js
Lihat Page.pdf() untuk informasi selengkapnya tentang membuat pdf.
Evaluasi skrip dalam konteks halaman
Simpan file sebagai 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();
})();
Jalankan skrip di command line:
node get-dimensions.js
Lihat Mengevaluasi JavaScript untuk
mengetahui informasi selengkapnya tentang metode evaluasi dan yang terkait, seperti evaluateOnNewDocument
dan
exposeFunction
.
Setelan runtime default
Menggunakan mode Headless
Puppeteer meluncurkan Chromium dalam mode headless. Untuk
meluncurkan Chromium versi lengkap, setel
opsi headless
saat
meluncurkan browser:
const browser = await puppeteer.launch({ headless: false }); // default is true
Menjalankan versi paket Chromium
Secara default, Puppeteer mendownload dan menggunakan versi Chromium tertentu sehingga
API-nya dijamin dapat langsung berfungsi. Untuk menggunakan Puppeteer dengan versi Chrome atau Chromium yang berbeda, teruskan jalur file yang dapat dieksekusi saat membuat instance Browser
:
const browser = await puppeteer.launch({ executablePath: '/path/to/Chrome' });
Anda juga dapat menggunakan Puppeteer dengan Firefox Nightly (dukungan eksperimental).
Lihat Puppeteer.launch()
untuk mengetahui informasi selengkapnya.
Untuk informasi selengkapnya:
- Apa Perbedaan Antara Chromium dan Chrome? dari How-To Geek.
- Chromium Docs menjelaskan beberapa perbedaan untuk pengguna Linux.
Membuat profil pengguna baru
Puppeteer membuat profil pengguna browsernya sendiri yang akan dibersihkan setiap kali dijalankan.
Langkah berikutnya
- Pelajari Headless Chrome lebih lanjut.
- Lihat contoh.