
Anh Tuan
Data Science Expert
Diterbitkan Oct 29, 2026
Diperbarui Oct 29, 2026 · min baca

Lightpanda adalah browser headless yang dibuat untuk otomasi, crawling, pengujian, dan agen browser. Pengembang mengendalikannya melalui antarmuka seperti Chrome DevTools Protocol, biasanya menggunakan Puppeteer. Ia dapat mengeksekusi JavaScript halaman dan menginspeksi DOM, yang membuatnya berguna ketika respons HTTP saja tidak memuat informasi yang dibutuhkan suatu alur kerja.
CAPTCHA adalah langkah terpisah. Memuat halaman melalui Lightpanda tidak berarti tantangan verifikasinya telah diselesaikan. CapSolver dapat menyediakan API solver terdokumentasi untuk CAPTCHA yang didukung, sementara aplikasi Anda tetap bertanggung jawab atas status halaman dan hasil akhirnya.
Panduan ini menghubungkan tanggung jawab tersebut tanpa mengasumsikan bahwa setiap halaman CAPTCHA berperilaku seperti Chromium. Contoh yang dapat dijalankan memverifikasi koneksi browser. Permintaan solver dan penerimaan oleh aplikasi memerlukan kredensial Anda sendiri dan tantangan yang diizinkan.
Integrasi CAPTCHA Lightpanda memerlukan satu koneksi ke browser dan satu lagi dari backend aplikasi ke solver API.
Repositori Lightpanda menunjukkan Puppeteer yang terhubung ke endpoint CDP. Navigasi browser, inspeksi halaman, dan callback aplikasi tetap berada di sisi alur kerja itu. API task CapSolver menerima input spesifik task dan mengembalikan respons task.
Jangan mengarahkan permintaan solver API ke port CDP. Jangan juga mengirim URL WebSocket browser sebagai websiteURL. Satu alamat mengontrol proses browser; yang lain mengidentifikasi halaman web yang memuat CAPTCHA.
Sebuah API juga menetapkan batasan apa yang diketahui integrasi. Hasil solver bukan perintah yang secara otomatis melanjutkan setiap browser. Aplikasi harus menggunakan field yang dikembalikan dengan cara yang diharapkan oleh halaman tersebut.
Pasang Lightpanda dan Puppeteer dalam folder proyek terisolasi sebelum menambahkan permintaan solver berbayar.
Contoh koneksi menggunakan Lightpanda 1.0.2, Puppeteer Core 25.16.0, dan Node.js 24. Pasang dependensi Node dengan npm install --save-exact puppeteer-core@25.16.0. Unduh binary untuk sistem operasi dan prosesor Anda dari rilis resmi 1.0.2, buat executable, dan konfirmasi versinya dengan ./lightpanda version.
Mulai server CDP lokal dengan ./lightpanda serve --host 127.0.0.1 --port 9227. Biarkan terminal tersebut tetap berjalan saat klien terhubung. Port dalam contoh berikut harus sesuai dengan port server. Gunakan binding lokal untuk setup pengembangan ini.
Siapkan halaman uji yang diizinkan sebelum melanjutkan. Pemeriksaan koneksi awal dapat menggunakan halaman sederhana milik Anda; uji CAPTCHA berikutnya memerlukan halaman dengan tantangan aktual dan cara di sisi aplikasi untuk mengamati penerimaannya. Siapkan juga kunci API CapSolver yang valid dan saldo yang cukup sebelum membuat task solver berbayar.
Tidak ada penyelesaian berbayar yang didemonstrasikan dalam panduan ini. Langkah verifikasi browser dan respons autentikasi API hanya menetapkan permukaan koneksi masing-masing; keduanya tidak membuktikan keberhasilan penyelesaian CAPTCHA atau kompatibilitas dengan situs eksternal tertentu.
Setel AUTHORIZED_TEST_URL ke halaman uji Anda, simpan berikut ini sebagai lightpanda-connect.mjs, dan jalankan node lightpanda-connect.mjs.
Contoh ini mengadaptasi pola koneksi Puppeteer resmi Lightpanda. Ia membuat konteks browser, memuat halaman yang diizinkan, membaca judul dan URL akhir, lalu membersihkan konteks dan koneksi klien.
import puppeteer from 'puppeteer-core';
const target = process.env.AUTHORIZED_TEST_URL;
if (!target) throw new Error('Set AUTHORIZED_TEST_URL to your permitted test page');
const browser = await puppeteer.connect({
browserWSEndpoint: 'ws://127.0.0.1:9227',
});
try {
const context = await browser.createBrowserContext();
try {
const page = await context.newPage();
await page.goto(target, { waitUntil: 'domcontentloaded' });
console.log({ title: await page.title(), url: page.url() });
} finally {
await context.close();
}
} finally {
await browser.disconnect();
}
Output harus mengidentifikasi halaman yang benar-benar dimuat. Jika yang dilaporkan adalah halaman error, redirect, atau dokumen yang tidak terkait, perbaiki itu sebelum membangun permintaan CAPTCHA. Evaluasi JavaScript yang berhasil pada halaman uji sederhana adalah titik awal yang berguna, tetapi tidak menunjukkan bahwa semua API browser widget nyata didukung.
Referensi connect Puppeteer menjelaskan lampiran ke browser yang sudah ada. Inilah mengapa contoh menggunakan connect alih-alih meluncurkan proses Chromium terpisah: proses yang diuji harus tetap Lightpanda.
Bangun task solver dari tantangan aktual yang dimuat oleh browser, dengan tetap mengaitkan inputnya dengan halaman tersebut.
Untuk reCAPTCHA v2 standar, mulai dari referensi task v2 resmi. Permintaan tanpa proxy menggunakan ReCaptchaV2TaskProxyLess, websiteURL, dan websiteKey. Parameter lain yang teramati dimasukkan ke field terdokumentasi mereka; jangan menyimpulkan parameter dari tampilan kotak centang saja.
JSON berikut mengilustrasikan bentuk permintaan tersebut. Ia berisi placeholder dan bukan tantangan live atau permintaan berbayar yang dieksekusi. Ganti nilainya dari halaman Anda sendiri yang diizinkan, dan gunakan contoh API atau SDK resmi yang ditautkan di atas untuk mengirimnya.
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "ReCaptchaV2TaskProxyLess",
"websiteURL": "https://example.com/authorized-form",
"websiteKey": "PUBLIC_SITE_KEY_FROM_THIS_PAGE"
}
}
Simpan clientKey di proses backend. Itu bukan kunci situs sisi browser dan tidak boleh dimasukkan ke halaman. websiteURL harus menggambarkan halaman web yang memuat CAPTCHA, bukan URL iframe CAPTCHA atau endpoint kontrol Lightpanda.
Jika Anda tidak mengetahui versinya atau parameter tambahan, gunakan alur kerja deteksi parameter CAPTCHA yang terdokumentasi sambil menginspeksi halaman yang diizinkan. Itu adalah langkah persiapan; bukan berarti ekstensi Chrome bisa dimuat ke Lightpanda.
Tukarkan Kode Bonus CapSolver Anda
Tingkatkan anggaran otomasi Anda secara instan!
Gunakan kode bonus CAP26 saat mengisi saldo akun CapSolver Anda untuk mendapatkan bonus 5% tambahan pada setiap pengisian — tanpa batas.
Tukarkan sekarang di Dashboard CapSolver
Biarkan halaman Lightpanda dan status aplikasinya tetap hidup saat task API selesai.
Untuk respons asinkron, simpan ID task yang dikembalikan oleh createTask dan gunakan getTaskResult untuk task tersebut. Periksa error API dan status pemrosesan sebelum membaca solusi. Field token respons yang terdokumentasi untuk v2 adalah gRecaptchaResponse.
Jangan membuat konteks browser baru hanya karena permintaan solver telah selesai. Konteks baru adalah lingkungan halaman yang berbeda, dan aplikasi Anda mungkin memiliki state yang terkait dengan operasi asli. Demikian juga, jangan menggunakan ulang hasil untuk halaman tertunda lain hanya karena halaman itu menampilkan jenis widget yang sama.
Script khusus koneksi di atas menutup konteks secara sengaja. Saat mengintegrasikan eksekusi solver ke dalam aplikasi nyata, letakkan operasi solver dan kelanjutan khusus halaman di dalam masa hidup konteks, sebelum cleanup dijalankan. Pertahankan cleanup baik saat error maupun sukses.
Terapkan hasil melalui callback atau jalur pengiriman yang didefinisikan oleh aplikasi Anda sendiri. Tidak ada nama callback universal yang bekerja di setiap halaman. Jangan menempelkan fungsi hasil tebakan ke integrasi dan mengasumsikan form telah menerima nilainya.
Adapter sisi browser minimal dapat terlebih dahulu diperiksa pada fixture milik sendiri dengan string inersia: verifikasi bahwa callback yang dimaksud menerima string tersebut dan field terkait berubah. Itu hanya memvalidasi adapter. Adapter tidak boleh mengirimkan string inersia seolah-olah itu respons CAPTCHA yang valid.
Panduan verifikasi respons reCAPTCHA Google menjelaskan langkah verifikasi terpisah di sisi aplikasi. Setelah hasil solver asli dikembalikan, periksa hasil aplikasi untuk upaya yang sama. Field yang terisi atau callback yang selesai saja tidak cukup sebagai bukti.
Pisahkan pemuatan browser, eksekusi solver, dan penerimaan aplikasi sehingga percobaan ulang menyasar masalah yang sebenarnya.
Konfirmasikan bahwa proses Lightpanda masih berjalan dan host serta port cocok. Periksa versi klien dan browser yang dipin sebelum mengasumsikan bahwa skrip Chromium yang berfungsi kompatibel dengan build Lightpanda saat ini.
Inspeksi error skrip halaman dan permintaan jaringan widget. Solver API tidak dapat memperbaiki fitur mesin browser yang dibutuhkan halaman. Buktikan bahwa halaman yang diizinkan memuat tantangan yang diharapkan sebelum melanjutkan ke task berbayar.
Baca respons error yang terdokumentasi dan periksa key, jenis task, URL, kunci situs, dan field kondisional. Error autentikasi membuktikan bahwa API menjawab; itu tidak membuktikan integrasi solver yang berhasil. Jangan berulang kali mengirim input tidak valid yang sama.
Periksa kepemilikan halaman, penyerahan token, perilaku callback, dan verifikasi sisi server. Catat ID task dan alasan kegagalan yang telah disensor. Hindari mencatat kunci API atau token respons mentah di output build bersama.
Perlakukan fixture sebagai uji adapter. Jalankan alur CAPTCHA nyata yang diizinkan sebelum mengandalkan integrasi. Perilaku browser, skrip widget, dan validasi aplikasi adalah kondisi tambahan, dan tidak satu pun mengikuti secara otomatis dari handshake CDP yang berhasil.
Lightpanda plus solver API eksternal relevan ketika crawler sudah menggunakan Lightpanda, menemukan CAPTCHA yang didukung selama task yang diizinkan, dan memiliki cara terverifikasi untuk melanjutkan halaman yang sama. Ini bukan alasan untuk menambahkan solver ke halaman tanpa CAPTCHA atau untuk mengklaim kompatibilitas browser universal.
Mulailah dengan koneksi browser nyata, verifikasi skema task, dan uji satu alur aplikasi yang diizinkan sebelum menambahkan konkruensi. Jaga setiap hasil tetap terkait dengan halamannya sendiri yang meminta dan ukur hasil nyata aplikasi.
Gunakan solver pada titik pemeriksaan CAPTCHA yang terverifikasi, lalu konfirmasikan hasil aplikasi. CapSolver menyediakan antarmuka solver terdokumentasi untuk langkah tersebut. Coba CapSolver dengan alur kerja uji yang diizinkan sebelum memperluas integrasi.
T: Apakah ini memasang solver CAPTCHA di dalam Lightpanda?
Tidak. Aplikasi berkomunikasi dengan Lightpanda melalui CDP dan memanggil solver API eksternal secara terpisah. Aplikasi kemudian harus menerapkan hasil melalui alur yang diharapkan aplikasi yang diizinkan.
T: Bisakah saya memuat ekstensi Chrome CapSolver ke browser ini?
Tutorial ini tidak menetapkan dukungan ekstensi Chrome di Lightpanda. Ia menggunakan task API eksternal. Inspeksi parameter di lingkungan Chrome yang didukung adalah langkah persiapan terpisah.
T: Apakah koneksi Puppeteer membuktikan bahwa reCAPTCHA berfungsi di Lightpanda?
Tidak. Itu membuktikan klien dapat terhubung dan menjalankan operasi browser yang didemonstrasikan. Skrip CAPTCHA aktual dan penerimaan oleh aplikasi memerlukan uji masing-masing.
T: Jenis reCAPTCHA apa yang digunakan contoh JSON?
Ia mengilustrasikan reCAPTCHA v2 standar dengan ReCaptchaV2TaskProxyLess. Enterprise, v3, dan keluarga tantangan lain memerlukan jenis task dan input terdokumentasi mereka sendiri.
T: Apakah penyelesaian CAPTCHA berbayar telah dilakukan oleh kode contoh?
Tidak. Sampel yang dapat dijalankan memeriksa koneksi browser, sementara JSON menjelaskan bentuk task dengan placeholder. Akun solver yang valid dan tantangan live yang diizinkan diperlukan untuk menguji penyelesaian dan penerimaan akhir.

Anh Tuan
Data Science Expert
Turning task outcomes into actionable insights.
TENTANG PENULIS
Pelajari arsitektur pengambilan data web Rust yang dapat diskalakan dengan reqwest, scraper, pengambilan data asinkron, pengambilan data browser tanpa tampilan, rotasi proxy, dan penanganan CAPTCHA yang sesuai aturan.

Mengotomasi penyelesaian CAPTCHA dengan Nanobot dan CapSolver. Gunakan Playwright untuk menyelesaikan reCAPTCHA dan Cloudflare secara otomatis.
