Mulai cepat boneka

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:

Membuat profil pengguna baru

Puppeteer membuat profil pengguna browsernya sendiri yang akan dibersihkan setiap kali dijalankan.

Langkah berikutnya