Panduan Belajar Hebat Kelas Dalang (Tutorial 7)

Puppeteer yang merupakan pustaka js node sumber terbuka, dapat digunakan sebagai alat scraping web. Pemahaman tentang baris perintah, Javascript, dan struktur DOM HTML sebaiknya dimulai dengan tutorial dalang ini. Seri tutorial Dalang didistribusikan di antara Sub bagian di bawah ini untuk memahami Dalang dengan baik. 

Tutorial Dalang

Dalang Tutorial #1: Sekilas Dalang

Tutorial Dalang #2: Variabel Lingkungan Dalang

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

Dalang Tutorial #4: Pasang Puppeteer

Dalang Tutorial #5: Contoh Proyek Dalang

Dalang Tutorial #6: Pengujian Otomasi Dalang

Dalang Tutorial #7: Kelas Dalang

Dalang Tutorial #8: Kelas Browser Dalang

Dalang Tutorial #9: Kelas Halaman Dalang

Dalam tutorial “Kelas Dalang” ini, kami akan menjelaskan kelas-kelas di bawah ini yang mencakup ruang nama penting (jika ada), peristiwa (jika ada), dan metode yang sering digunakan dalam teknik pengikisan web Puppeteer. 

Kami akan menjelaskan komponen penting dengan contoh di seluruh artikel ini.  

Kelas Dalang

Secara konseptual, kelas adalah cetak biru dari suatu objek yang mendefinisikan sekumpulan instruksi (variabel dan metode). Di sini, kelas Puppeteer didefinisikan menggunakan javascript untuk melakukan tindakan yang berbeda untuk melakukan web scraping. Mari kita periksa contoh di bawah ini, modul kelas Dalang telah digunakan untuk meluncurkan instance web Chromium.

const dalang = membutuhkan('dalang'); (async () => { const browserChrome = menunggu dalang.launch(); const pageChrome = menunggu browserChrome.newPage(); menunggu halamanChrome.goto('https://www.google.com'); // Kita bisa menulis langkah-langkah di sini menunggu browserChrome.close(); })();

Kelas Puppeteer juga menyediakan beberapa Namespaces dan Methods, yang mendukung proses web scraping. Ruang nama dan Metode yang sering digunakan dijelaskan di bagian selanjutnya.

Kelas Dalang - Namespaces:

Ini adalah wadah yang mendefinisikan banyak pengenal, metode, variabel, dll., Dalam javascript. Ini adalah cara untuk mengelompokkan kode dengan cara yang logis dan terorganisir. Ruang nama di bawah ini disediakan oleh kelas Dalang.

dalang.devices: Ini mengembalikan daftar perangkat yang dapat digunakan oleh metode ini page.emulate (opsi) untuk melakukan pengikisan di perangkat seluler. 

Contoh - Buka dan tutup halaman web google di perangkat seluler -

const dalang = membutuhkan('dalang'); const samsung = dalang.devices['Samsung J5']; (async () => { const browserChrome = menunggu dalang.launch(); const pageChrome = menunggu browserChrome.newPage(); menunggu halamanChrome.emulate(samsung); menunggu halamanChrome.goto('https://www.google.com '); menunggu browserChrome.close(); })();

dalang.error: Saat bekerja dengan metode dalang yang berbeda, ada kemungkinan pengecualian. Biasanya, jika metode tidak dapat memenuhi permintaan, ini akan memunculkan kesalahan. Ada kelas berbeda yang ditentukan untuk menangani kesalahan melalui ruang nama 'puppeteer.errors'.

Contoh - untuk metode page.waitForSelector, jika elemen web tidak muncul dalam waktu yang ditentukan, maka kesalahan waktu tunggu akan muncul. Silakan lihat contoh di bawah ini, yang menunjukkan pendekatan untuk menangani batas waktu,

coba { menunggu halaman.waitForSelector(' '); } catch (err) { if (err instanceof dalang.errors.TimeoutError) { // Tulis kode untuk menangani kesalahan batas waktu. } } 

dalang.networkKondisi: Ini mengembalikan daftar kondisi jaringan yang dapat digunakan pada halaman metode. EmulateNetworkConditions (networkConditions). Daftar lengkap kondisi jaringan ditentukan disini.

Contoh - Melalui contoh kode ini, kita akan membuka halaman web google menggunakan kondisi jaringan yang telah ditentukan sebelumnya.

const dalang = membutuhkan('dalang'); const net = dalang.networkConditions['3G Cepat']; (async () => { const browserChrome = menunggu dalang.launch(); const pageChrome = menunggu browserChrome.newPage(); menunggu halamanChrome.emulateNetworkConditions(net); menunggu halamanChrome.goto('https://www.google.com '); menunggu browserChrome.close(); })();

dalang.produk: Ini mengembalikan nama browser, yang akan digunakan untuk otomatisasi (Chrome atau Firefox). Produk untuk browser disetel oleh variabel lingkungan PUPPETEER_PRODUCT atau opsi produk yang tersedia dalam metode kelas dalang puppeteer.launch ([opsi]). Nilai defaultnya adalah Chrome.

Referensi: Klik disini untuk mempelajari lebih lanjut tentang ruang nama Kelas Dalang.

Kelas Dalang - Metode:

Metode berisi pernyataan untuk melakukan tindakan tertentu. Kelas dalang memiliki metode di bawah ini,

puppeteer.clearCustomQueryHandlers () - Ini menghapus semua penangan terdaftar.

puppeteer.connect (opsi) - Metode ini digunakan untuk menghubungkan dalang dengan browser apa pun yang ada. Ini mengembalikan objek berjenis janji yang menunjukkan status proses asinkron ini. Contoh - Dalam contoh di bawah ini, dalang memutuskan sambungan dari browser saat ini dan menyambungkan kembali,

const dalang = membutuhkan('dalang'); (async () => { const browserChrome = menunggu dalang.launch(); // Salin referensi titik akhir yang akan dihubungkan kembali nanti const titik akhir = browserChrome.wsEndpoint(); // Putuskan koneksi dalang browserChrome.disconnect(); // Gunakan titik akhir untuk menghubungkan kembali const browserChrome2 = menunggu dalang.connect({endpoint}); // Tutup contoh kedua Chromium menunggu browserChrome2.close(); })();

puppeteer.createBrowserFetcher ([opsi]) - Ini membuat objek pengambil browser untuk mengunduh dan mengelola berbagai versi browser (Chrome dan Firefox).

const browserFetcher = puppeteer.createBrowserFetcher ();

dalangeer.customQueryHandlerNames() – Ini mengembalikan dan susunan dari semua penangan kueri khusus yang terdaftar.

puppeteer.defaultArgs ([opsi]) - Ini mengembalikan opsi konfigurasi default browser chrome sebagai array saat meluncurkan. Selain itu, kita dapat mengatur opsi yang dapat dikonfigurasi dari browser menggunakan opsi argumen opsional.

const args = puppeteer.defaultArgs ();

puppeteer.executablePath () - Ini mengembalikan jalur yang diharapkan oleh dalang untuk contoh browser yang dibundel. Jalur yang tidak akan tersedia dalam unduhan dilewati oleh variabel lingkungan PUPPETEER_SKIP_DOWNLOAD. Selain itu, kita dapat menggunakan variabel lingkungan PUPPETEER_EXECUTABLE_PATH dan PUPPETEER_CHROMIUM_REVISION untuk mengubah jalur.

const args = puppeteer.executablePath ();

puppeteer.launch ([opsi]) - Metode kelas dalang ini digunakan untuk meluncurkan browser web. Melalui argumen opsional, kita dapat meneruskan konfigurasi browser yang berbeda, seperti product (nama browser), headless, devtools, dll. Metode ini mengembalikan objek promise, yang menyimpan referensi browser yang diluncurkan.

browser const = menunggu puppeteer.launch ();

puppeteer.registerCustomQueryHandler (nama, queryHandler) - Ini digunakan untuk mendaftarkan penangan kueri khusus. Di sini "nama" memberikan nama penangan kueri, dan "queryHandler" menentukan penangan kueri khusus yang sebenarnya.

puppeteer.unregisterCustomQueryHandler (nama) - Ini digunakan untuk membatalkan registrasi penangan kueri khusus.

Referensi: Klik disini untuk membaca lebih lanjut tentang metode Kelas Dalang.

Kelas Target

Kelas target menyediakan metode untuk bekerja dengan target. Metode yang paling sering digunakan yang tersedia dengan kelas target dijelaskan di bagian selanjutnya.

Kelas Target - Metode:

Metode di bawah ini tersedia di kelas target -

  • Target.browser () - Ini mengembalikan objek browser yang ditautkan ke target.
  • Target.browserContext () - Ini mengembalikan objek tipe browserContext yang ditautkan ke target.
  • Target.createCDPSession () - Ini membuat dan mengembalikan sesi protokol devtool dari chrome, yang dilampirkan ke target.
  • Target.opener () - Ini mengembalikan target yang membuka target ini. Pada dasarnya metode ini digunakan untuk mendapatkan target induk. Ini mengembalikan nol untuk target tingkat atas.
  • Target.page() – Ini mengembalikan objek halaman dari target. Jika jenis target bukan halaman, ia mengembalikan nilai nol.
  • Target.type () - Ini digunakan untuk mendapatkan tipe target. Nilai yang dikembalikan dapat berupa opsi - 'background_page', 'page', 'shared_worker', 'service_worker', 'browser' atau 'other'.
  • Target.url () - Ini mengembalikan url target.
  • Target.worker () - Ini mengembalikan objek webworker. Nilai yang dikembalikan adalah null jika targetnya bukan 'service_worker' atau 'shared_worker'.

Referensi: Klik disini untuk membaca lebih lanjut tentang metode kelas Target.

Kelas ConsoleMessage

Objek kelas ConsoleMessage dikirim berdasarkan halaman melalui acara konsol. Metode kelas consoleMessage yang sering digunakan dijelaskan di bagian selanjutnya.

Kelas ConsoleMessage - Metode:

Metode di bawah ini tersedia di kelas ConsoleMessage -

  • consoleMessage.args () - Ini mengembalikan array objek JSHandler. JSHandler mencegah objek JS yang ditautkan dari pengumpulan sampah hingga pegangan dibuang. Ini secara otomatis dihancurkan ketika konteks browser induk dimusnahkan.
  • consoleMessage.location () - Ini mengembalikan objek sumber daya, yang mencakup parameter di bawah ini.
  • url - Ini menunjukkan URL dari sumber daya yang diketahui. Jika tidak diketahui, itu akan disimpan sebuah undefined nilai.
  • LineNumber - Ini adalah nomor baris berbasis 0 yang tersedia di sumber daya. Jika tidak tersedia, itu akan disimpan sebuah undefined nilai.
  • columNumber - Ini adalah nomor kolom berbasis 0 yang tersedia di sumber daya. Jika tidak tersedia, itu akan disimpan sebuah undefined nilai.
  • consoleMessage.stackTrace () - Ini mengembalikan daftar objek (setiap objek merujuk sumber daya) yang mencakup parameter di bawah ini.
  • url - Ini menunjukkan URL dari sumber daya yang diketahui. Jika tidak diketahui, itu akan disimpan sebuah undefined nilai.
  • LineNumber - Ini adalah nomor baris berbasis 0 yang tersedia di sumber daya. Jika tidak tersedia, itu akan disimpan sebuah undefined nilai.
  • columNumber - Ini adalah nomor kolom berbasis 0 yang tersedia di sumber daya. Jika tidak tersedia, itu akan disimpan sebuah undefined nilai.
  • consoleMessage.text () - Ini mengembalikan teks konsol.
  •  consoleMessage.type () - Ini mengembalikan string sebagai jenis pesan konsol. Jenisnya bisa berupa nilai - log, debug, info, error, warning, dir, dirxml, table, trace, clear, startGroup, startGroupCollapsed, endGroup, assert, profile, profileEnd, count, timeEnd.

Referensi: Klik disini untuk mempelajari lebih lanjut tentang metode kelas consoleMessage.

Kelas TimeoutError

Saat bekerja dengan dalang yang berbeda, ada kemungkinan pengecualian. Biasanya, jika metode tidak dapat memenuhi permintaan, ini akan memunculkan kesalahan. Kelas TimeoutError digunakan untuk menangani jenis pengecualian ini.

Contoh Kelas TimeoutError - untuk metode page.waitForSelector, jika elemen web tidak muncul dalam waktu yang ditentukan, maka kesalahan waktu tunggu akan muncul. Silakan lihat contoh di bawah ini, yang menunjukkan pendekatan untuk menangani batas waktu,

coba { menunggu halaman.waitForSelector(' '); } catch (e) { if (e instanceof dalang.errors.TimeoutError) { // Tulis kode untuk menangani kesalahan. } } 

Kelas FileChooser

Objek kelas pemilih file dibuat menggunakan metode page.waitForFileChooser. Kelas FileChooser digunakan untuk berinteraksi dengan file. Metode kelas FileChooser yang sering digunakan akan dijelaskan di bagian selanjutnya.

Kelas FileChooser - Metode:

Metode di bawah ini tersedia untuk kelas FileChooser -

  • fileChooser.accept (file_with_path) - Metode ini digunakan untuk mengunggah file apa pun (yang jalurnya disediakan sebagai argumen).
  • fileChooser.cancel () - Metode ini digunakan untuk membatalkan proses upload file.
  • fileChooser.isMultiple () - Metode ini memeriksa apakah fileChooser memungkinkan untuk memilih beberapa nilai. Ini mengembalikan ekspresi boolean (benar atau salah).

Contoh kelas FileChooser -

const [fileChooser] = menunggu Janji.all([ page.waitForFileChooser(), page.click('#attach-button'), ]); menunggu fileChooser.accept(['/puppeteer_proj/data/sample_file.pdf']);

Kesimpulan:

Dalam tutorial “Puppeteer Class” ini, kami telah menjelaskan class Puppeteer, class Target, class MessageConsole, dan class TimeoutError yang menyertakan namespace penting (jika ada), event (jika ada), dan metode yang sering digunakan dalam teknik web scraping Puppeteer dengan contoh. Pada artikel selanjutnya, kami akan menjelaskan Kelas BrowserContext, Browser, dan BrowserContext.

Tinggalkan Komentar

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

Gulir ke Atas