
Garpu dalang berlari di Deno.
Puppeteer adalah perpustakaan yang menyediakan API tingkat tinggi untuk mengontrol krom, kromium, atau firefox setiap malam di atas protokol Devtools. Puppeteer berjalan tanpa kepala secara default, tetapi dapat dikonfigurasi untuk menjalankan krom atau kromium penuh (non-headless).
Sebagian besar hal yang dapat Anda lakukan secara manual di browser dapat dilakukan dengan menggunakan dalang! Berikut adalah beberapa contoh untuk membantu Anda memulai:
Untuk menggunakan dalang, impor seperti itu:
import puppeteer from "https://deno.land/x/[email protected]/mod.ts" ;Puppeteer dapat menggunakan versi terbaru dari Chromium atau Firefox Nightly, tetapi versi dalang ini hanya divalidasi terhadap versi tertentu. Untuk menyimpan versi -versi ini dalam cache dalang, jalankan perintah di bawah ini.
PUPPETEER_PRODUCT=chrome deno run -A --unstable https://deno.land/x/[email protected]/install.ts
PUPPETEER_PRODUCT=firefox deno run -A --unstable https://deno.land/x/[email protected]/install.tsAnda dapat menemukan semua variabel lingkungan yang didukung untuk menyesuaikan instalasi di Docs Docs.
Puppeteer akan akrab bagi orang yang menggunakan kerangka kerja pengujian browser lainnya. Anda membuat instance Browser , halaman terbuka, dan kemudian memanipulasinya dengan API dalang.
Contoh - menavigasi ke https://example.com dan menyimpan tangkapan layar sebagai contoh.png :
Simpan file sebagai contoh.js
import puppeteer from "https://deno.land/x/[email protected]/mod.ts" ;
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 ( ) ;Jalankan skrip pada baris perintah
deno run -A --unstable example.js Puppeteer menetapkan ukuran halaman awal menjadi 800 × 600px, yang mendefinisikan ukuran tangkapan layar. Ukuran halaman dapat disesuaikan dengan Page.setViewport() .
Contoh - Buat PDF.
Simpan file sebagai hn.js
import puppeteer from "https://deno.land/x/[email protected]/mod.ts" ;
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 pada baris perintah
deno run -A --unstable hn.js Lihat Page.pdf() untuk informasi lebih lanjut tentang membuat PDF.
Contoh - Evaluasi skrip dalam konteks halaman
Simpan file sebagai get-dimension.js
import puppeteer from "https://deno.land/x/[email protected]/mod.ts" ;
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 pada baris perintah
deno run -A --unstable get-dimensions.js deno-puppeteer secara efektif menjalankan versi dalang reguler, kecuali untuk beberapa perubahan kecil untuk membuatnya kompatibel dengan Deno.
Perbedaan yang paling mencolok adalah kemungkinan bahwa alih -alih beberapa metode mengambil / mengembalikan Buffer simpul, mereka mengambil / mengembalikan Uint8Array . Salah satu metode juga mengembalikan web asli ReadableStream alih -alih simpul Readable .
Selain ini, dokumentasi di https://pptr.dev umumnya berlaku.
Contoh DockerFile dapat ditemukan di repositori ini. Ini akan menginstal semua dependensi yang diperlukan, dan menunjukkan cara menjalankan ./examples/docker.js.
Ini hanya dimaksudkan sebagai titik lompat - sesuaikan seperti yang Anda inginkan.