Panduan Belajar Hebat Kelas Browser Dalang (Tutorial 8)

Puppeteer adalah pustaka js node open-source dan digunakan sebagai otomatisasi web serta alat scraping web. Anda memerlukan pemahaman dasar tentang Javascript, dan struktur DOM HTML untuk mulai bekerja dengan Puppeteer. Seri tutorial Dalang ini didistribusikan di segmen di bawah ini yang akan membekali Anda dengan semua pengalaman yang diperlukan untuk mulai bekerja dengan Dalang. 

Tutorial Dalang

Tutorial Tosca # 1: Sekilas Dalang

Tutorial Tosca # 2: Variabel Lingkungan Dalang

Tutorial Tosca # 3: Sekilas tentang Otomatisasi Dalang Web dan Tes Dalang

Tutorial Tosca # 4: Pasang Puppeteer

Tutorial Tosca # 5: Contoh Proyek Dalang

Tutorial Tosca # 6: Pengujian Otomasi Dalang

Tutorial Tosca # 7: Kelas Dalang

Tutorial Tosca # 8: Kelas Browser Dalang

Tosca Tutorial #9: Kelas Halaman Dalang

Dalam tutorial "Puppeteer Browser Class" ini, kita akan memiliki pemahaman mendalam lebih jauh tentang class yang disebutkan di bawah ini yang terdiri dari namespace penting, event, dan metode lengkap lainnya yang diperlukan untuk bekerja dengan teknik web scraping Puppeteer.  

Dalang Kelas BrowserFetcher

Puppeteer BrowserFetcher Class digunakan untuk mengunduh dan mengelola versi browser yang berbeda. Kelas BrowserFetcher beroperasi pada string revisi yang menentukan versi browser chrome. Nomor revisi dapat diperoleh dari disini. Dalam kasus Firefox, itu mengunduh browser setiap malam berdasarkan nomor versi.

Contoh di bawah ini menunjukkan cara mengunduh dan luncurkan browser chrome menggunakan kelas BrowserFetcher.

const browserFetcher = dalang.createBrowserFetcher(); const revInfo = menunggu browserFetcher.download('766890'); const browserChrome= menunggu dalang.launch({executablePath: revInfo.executablePath})

Tidak mungkin bekerja secara bersamaan dengan instance kelas BrowserFetcher lainnya. Metode kelas BrowserFetcher yang sering digunakan dijelaskan di bagian selanjutnya.

Dalang Kelas BrowserFetcher - Metode:

Metode di bawah ini tersedia di kelas browserfetcher dalang,

browserFetcher.canDownload (revisi) - Dengan bantuan nomor revisi browser, metode ini memeriksa ketersediaan browser yang ditentukan sebagai bagian dari permintaan header. Metode ini mengembalikan nilai boolean (benar atau salah) berdasarkan ketersediaan.

const boolVar = browserFetcher.canDownload ('766890');

browserFetcher.download (revisi [, progressCallback]) - Metode ini mengunduh browser chrome menggunakan argumen nomor revisi. Di sini progressCallback adalah argumen opsional yang memanggil fungsi dengan dua argumen - byte yang diunduh dan total byte. Metode ini mengembalikan informasi revisi sebagai objek janji.

const revInfo = browserFetcher.download ('766890');

browserFetcher.host () - Ini mengembalikan nama host, yang digunakan untuk mengunduh browser.

const hostName = browserFetcher.host ();

browserFetcher.localRevisions () - Ini mengembalikan daftar semua revisi yang tersedia di sistem lokal.

const revList = browserFetcher.localRevisions ();

browserFetcher.platform () - Ini mengembalikan nama platform dari host, yang akan menjadi salah satu dari mac, Linux, win32, atau win64.

const platformName = browserFetcher.platform ();

browserFetcher.product () - Ini mengembalikan nama browser yang akan menjadi chrome atau firefox

const productName = browserFetcher.product ();

browserFetcher.remove (revisi) - Metode ini digunakan untuk menghapus revisi yang ditentukan untuk produk / browser saat ini. Ini mengembalikan objek promise, yang diselesaikan setelah proses selesai.

const revInfo = browserFetcher.remove ('766890');

browserFetcher.revisionInfo (revisi) - Ini akan mengembalikan objek pada informasi revisi yang mencakup revisi, folderPath, executablePath, url, lokal, dan produk.

const revInfo = browserFetcher.revisionInfo ('766890');

Referensi: Klik disini untuk mempelajari lebih lanjut tentang metode Kelas BrowserFetcher.

Dalang Kelas Browser

Kelas Penjelajah Dalang dibuat saat dalang meluncurkan atau menghubungkan peramban menggunakan dalang.launch or dalang.koneksi metode.

Contoh di bawah ini menunjukkan cara membuat kelas dan Halaman Browser menggunakan referensi browser.

const dalang = membutuhkan('dalang'); (async () => { const browserChrome = menunggu dalang.launch(); const pageChrome = menunggu browserChrome.newPage(); menunggu halamanChrome.goto('https://www.google.com'); menunggu browserChrome.close( ); })();

Peristiwa dan metode kelas Browser yang sering digunakan dijelaskan di bagian selanjutnya.

Dalang Kelas Browser - Acara:

Acara di bawah ini tersedia di kelas browser,

  • browser.on ('terputus') - Peristiwa ini dipicu saat browser ditutup / rusak atau browser.disconnect metode disebut.
  • browser.on ('targetchanged') - Peristiwa ini dipicu saat url target telah berubah.
  • browser.on ('targetcreated') - Acara ini dipicu saat halaman baru dibuka di tab atau jendela baru dengan metode browser.halaman baru or window.open.
  • browser.on ('targetdestroyed') - Peristiwa ini dipicu saat target dihancurkan, yaitu halaman ditutup.

Dalang Kelas Browser - Metode:

Metode di bawah ini tersedia di kelas browser,

  • browser.browserContexts () - Ini mengembalikan daftar semua konteks browser. Untuk browser yang baru diluncurkan, metode ini akan mengembalikan satu instance BrowserContext.
  • browser.close () - Metode ini digunakan untuk menutup semua halaman browser-chromium yang terbuka. 

menunggu browser.close ();

  • browser.createIncognitoBrowserContext () - Ini membuat / mengembalikan konteks browser penyamaran, yang tidak akan pernah membagikan cookie atau cache dengan konteks browser lainnya. Pada contoh di bawah ini, halaman web (google) akan dibuka dalam mode penyamaran.

(async () => {
  const chromeBrowser = menunggu puppeteer.launch ();
  // Buat konteks browser penyamaran baru.
  const context = menunggu chromeBrowser.createIncognitoBrowserContext ();
  const pageChrome = menunggu context.newPage ();
  menunggu pageChrome.goto ('https://www.google.com');
}) ();

  • browser.defaultBrowserContext () - Ini mengembalikan konteks browser default yang tidak dapat dihancurkan atau ditutup.
  • browser.disconnect () - Ini akan memutuskan browser dari dalang. Tapi, browser akan tetap berjalan dalam kasus ini.
  • browser.isConnected () - Metode ini memeriksa apakah browser terhubung atau tidak. Ini akan mengembalikan nilai boolean berdasarkan pemeriksaan.

const boolFlag = menunggu browser.isConnected ();

  • browser.newPage () - Metode ini akan membuat halaman baru dan mengembalikan instance halaman.

halaman const = menunggu browser.newPage ();

  • browser.pages () - Metode ini mengembalikan daftar semua halaman yang saat ini dalam keadaan terbuka.

const pageList = menunggu browser.pages ();

  • browser.process () - Metode ini mengembalikan proses browser yang dibuat. Jika browser dibuat menggunakan browser.koneksikan metode, dan itu akan mengembalikan nilai nol.
  • browser.target () - Metode ini mengembalikan target yang terkait dengan browser.

const target = menunggu browser.target ();

  • browser.target () - Ini mengembalikan daftar semua target aktif dalam browser.

const targetList = menunggu browser.t target ();

  • browser.userAgent () - Ini mengembalikan objek promise tentang agen asli browser.
  • browser.version () - Ini mengembalikan versi browser dalam format 'HeadlessChrome / xx.x.xxxx.x 'untuk headless chrome dan' Chrome / xx.x.xxxx.x 'untuk chrome tanpa kepala. Formatnya bisa berubah di rilis mendatang.
  • browser.waitForTarget (predikat [, opsi]) - Ini akan mencari di semua konteks browser dan menunggu target.

menunggu pageChrome.evaluate (() => window.open ('https://lambdageeks.com/'));
const newWindowTarget = menunggu browser.waitForTarget (target => target.url () === 'https://lambdageeks.com/');

  • browser.wsEndpoint () - Ini mengembalikan url soket web browser.

const wsUrl = menunggu browser.wsEndPoint ();

Referensi: Klik disini untuk mempelajari lebih lanjut tentang acara dan metode kelas Browser.

Dalang Kelas BrowserContext

Kelas BrowserContext membantu mengoperasikan beberapa contoh browser. Setelah meluncurkan sebuah instance browser, secara default, satu BrowserContext digunakan. Itu browserChrome.lembaran baru() metode membuat halaman dalam objek kelas BrowserContext default. Jika halaman web memanggil halaman lain, maka halaman baru tersebut harus termasuk dalam konteks browser halaman induk. Di sini, halaman baru dapat dibuat menggunakan itu window.open () Metode. 

Pada contoh di bawah ini, Dalang memiliki kemampuan untuk membuat konteks browser dalam mode 'penyamaran'. Konteks browser 'penyamaran' tidak menulis data apa pun di penyimpanan.

// Pembuatan konteks browser penyamaran const contextIncognito = menunggu browserChrome.createIncognitoBrowserContext(); // Pembuatan halaman baru melalui konteks browser. const pageChrome = menunggu contextIncognito.newPage(); menunggu halamanChrome.goto('https://www.google.com'); //tutup konteks setelah digunakan menunggu konteksIncognito.close();

Peristiwa dan metode kelas BrowserContext yang sering digunakan dijelaskan di bagian selanjutnya.

Dalang Kelas BrowserContext - Acara:

Peristiwa di bawah ini tersedia di kelas browsercontext,

  • browserContext.on (targetchanged) - Peristiwa ini dipicu saat url target dalam konteks browser telah berubah.
  • browserContext.on (targetcreated) - Acara ini dipicu setelah pembuatan di dalam konteks browser. Metodenya window.open serta browserContext.newPage bertanggung jawab atas acara ini.
  • browserContext.on ('targetdestroyed') - Peristiwa ini dipicu saat target dihancurkan dalam konteks browser.

Dalang Kelas BrowserContext - Metode:

Metode di bawah ini tersedia di kelas browsercontext,

  • browserContext.browser () - Metode ini mengembalikan objek browser yang tersedia dalam konteks browser.
  • browserContext.clearPermissionOverrides () - Metode ini menghapus semua izin yang diganti dari konteks browser. Contoh di bawah ini menunjukkan bagaimana menggunakan metode ini - 

const browserContext = browser.defaultBrowserContext ();
browserContext.overridePermissions ('https://www.google.com', ['clipboard-read']);
browserContext.clearPermissionOverrides ();

  • browserContext.close () - Metode ini digunakan untuk menutup atau menghancurkan konteks browser. Semua browser yang tersedia dalam konteks browser akan ditutup.

browserContext.close ();

  • browserContext.isIncognito () - Metode ini digunakan untuk memeriksa apakah browser telah dibuat dalam mode 'penyamaran' atau tidak. Ini mengembalikan nilai boolean (benar - mode penyamaran atau salah - mode non-penyamaran) berdasarkan mode browser. Secara default, browser apa pun dipanggil dalam mode 'non-penyamaran'.

const boolIsIncognito = browserContext.isIncognito ();

  • browserContext.newPage () - Metode ini digunakan untuk membuat halaman baru dalam konteks browser yang sama.

browserContext.newPage ();

  • browserContext.overridePermissions (asal, izin) - Metode ini digunakan untuk memberikan izin yang ditentukan ke asal, yaitu, url target. Izin berbeda yang tersedia untuk diberikan adalah -
  • 'geolocation'
  • 'midi-sysex' (midi eksklusif sistem)
  • 'midi'
  • 'Dorong'
  • 'kamera'
  • 'notifikasi'
  • 'mikropon'
  • 'ambient-light-sensor'
  • 'akselerometer'
  • 'background-sync'
  • 'giroskop'
  • 'aksesibilitas-acara'
  • 'clipboard-read'
  • 'magnetometer'
  • 'clipboard-write'
  • 'pembayaran-handler'

Contoh di bawah ini menunjukkan bagaimana memberikan izin -

const browserContext = browser.defaultBrowserContext ();
menunggu browserContext.overridePermissions ('https://www.google.com', ['geolocation']);

  • browserContext.pages () - Metode ini mengembalikan daftar semua halaman terbuka yang tersedia dalam konteks browser. Halaman yang tidak terlihat tidak akan dicantumkan di sini.

const openPageList = browserContext.pages ();

  • browserContext.t Target () - Metode ini mengembalikan daftar semua target aktif yang tersedia dalam konteks browser. Halaman yang tidak terlihat tidak akan dicantumkan di sini.

const activeTargetList = browserContext.t Target ();

  • browserContext.waitForTarget (predikat [, opsi]) - Metode ini digunakan untuk menunggu target muncul dan mengembalikan objek target. Argumennya, 'predikat' pada dasarnya adalah panggilan fungsi untuk setiap target. Selain itu, secara opsional, kita dapat meneruskan beberapa nilai konfigurasi seperti batas waktu sebagai argumen kedua.
menunggu pageChrome.evaluate(() => window.open('https://www.google.com/')); const newWindowTarget = menunggu browserContext.waitForTarget(target => target.url() === 'https://www.google.com/');

Referensi: Klik disini untuk membaca lebih lanjut tentang acara dan metode kelas BrowserContext.

Kesimpulan:

Dalam tutorial "Puppeteer Browser Class" ini, kami telah menjelaskan class BrowserFetcher, class BrowserContext, dan class Browser yang menyertakan namespace penting (jika ada), peristiwa (jika ada), dan metode yang sering digunakan dalam teknik web scraping Puppeteer dengan contoh. Pada artikel selanjutnya, kami akan menjelaskan kelas Page, Frame, dan Dialog.

Tinggalkan Komentar

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai *

Gulir ke Atas