CAPSOLVER
Blog
Cara menyelesaikan reCaptcha v2 menggunakan Puppeteer dengan Ekstensi Capsolver

Cara menyelesaikan reCaptcha v2 dengan Puppeteer [JavaScript] dengan Ekstensi CapSolver

Logo of CapSolver

Adélia Cruz

Neural Network Developer

29-Dec-2025

Pendahuluan

Mengotomasi interaksi browser seringkali memerlukan penanganan tantangan CAPTCHA, terutama ketika bekerja dengan alat seperti Puppeteer. Dalam panduan ini, kita akan menjelaskan cara mengatur Puppeteer JS dengan ekstensi CapSolver untuk menyelesaikan reCAPTCHA v2 secara efisien. Meskipun tutorial ini fokus pada reCAPTCHA v2, pendekatan yang sama dapat diperluas untuk jenis CAPTCHA lain yang didukung oleh CapSolver.

Di akhir artikel ini, Anda akan memahami cara menginstal dependensi yang diperlukan, mengonfigurasi ekstensi CapSolver, dan memicu penyelesaian CAPTCHA langsung dalam sesi browser yang dikontrol oleh Puppeteer.

1. Menginstal komponen puppeteer

⚠️ Dalam blog ini, kita akan menjelaskan cara mengatur Puppeteer JS dengan ekstensi CapSolver untuk menyelesaikan reCAPTCHA v2. Namun, pendekatan ini juga dapat diterapkan untuk jenis CAPTCHA lainnya.

Copy
npm i puppeteer puppeteer-extra puppeteer-extra-plugin-stealth

2. Mengatur ekstensi

Unduh arsip dengan ekstensi, dan ekstrak ke folder ./CapSolver.Browser.Extension di akar proyek.

Ekstensi ini memiliki banyak pengaturan, termasuk penyelesaian CAPTCHA otomatis, dukungan proxy, dan opsi kontrol yang lebih rinci. Pengaturan ini tersedia di file ./assets/config.json.

Pengaturan tersebut adalah:

json Copy
{
    "apiKey": "KunciAPIAnda",
    "useCapsolver": true,

    "useProxy": false,
    "proxyType": "http",
    "hostOrIp": "",
    "port": "",
    "proxyLogin": "",
    "proxyPassword": "",

    "enabledForBlacklistControl": false,
    "blackUrlList": [],

    "enabledForRecaptcha": true,
    "enabledForRecaptchaV3": true,
    "enabledForcaptcha": true,

    "reCaptchaMode": "token",
    "captchaMode": "click",

    "reCaptchaDelayTime": 0,
    "captchaDelayTime": 0,

    "reCaptchaRepeatTimes": 10,
    "reCaptcha3RepeatTimes": 10,
    "captchaRepeatTimes": 10
}

Masukkan kunci API Anda ke dalam file pengaturan ekstensi ./assets/config.json. Kunci tersebut harus diberikan ke field apiKey. Anda dapat menyalin kunci API langsung dari dashboard CapSolver.

Contoh:

Copy
apiKey: "CAP-4FDBD3SDFSD-23S-2-3"

Dalam contoh ini, reCaptchaMode diatur ke token. Meskipun mode click juga tersedia, mode token biasanya direkomendasikan untuk reCAPTCHA.

3. Mengatur Puppeteer untuk menyelesaikan reCAPTCHA dengan Ekstensi CapSolver

Copy
const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');
const { executablePath } = require('puppeteer'); 

(async () => {
  const pathToExtension = require('path').join(__dirname, 'CapSolver.Browser.Extension');
  puppeteer.use(StealthPlugin())
  const browser = await puppeteer.launch({
    headless: false,
    args: [
      `--disable-extensions-except=${pathToExtension}`,
      `--load-extension=${pathToExtension}`,
    ],
    executablePath: executablePath()
  });
  
  const [page] = await browser.pages()
})();

Berikutnya, buka halaman https://www.google.com/recaptcha/api2/demo dan kirim CAPTCHA ke CapSolver.

Gunakan page.goto() untuk mengarahkan ke halaman target. CAPTCHA dapat dikirim untuk diselesaikan secara otomatis atau manual. Dalam contoh ini, kita memicunya secara manual dengan menunggu checkbox CAPTCHA dan mengkliknya.

js Copy
await page.goto('https://site.example') 

// Menunggu elemen dengan selektor CSS "#recaptcha-anchor-label"
await page.waitForSelector('#recaptcha-anchor-label')
// Klik pada elemen
await page.click('#recaptcha-anchor-label')

Kode Lengkap

js Copy
const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');
const { executablePath } = require('puppeteer'); 

(async () => {
  const pathToExtension = require('path').join(__dirname, 'CapSolver.Browser.Extension');
  puppeteer.use(StealthPlugin())
  const browser = await puppeteer.launch({
    headless: false,
    args: [
      `--disable-extensions-except=${pathToExtension}`,
      `--load-extension=${pathToExtension}`,
    ],
    executablePath: executablePath()
  });
  
  const [page] = await browser.pages()

  // Membuka halaman
  await page.goto('https://site.example') 

  // Menunggu elemen dengan selektor CSS "#recaptcha-anchor-label"
  await page.waitForSelector('#recaptcha-anchor-label')
  // Klik pada elemen
  await page.click('#recaptcha-anchor-label')
})();

Kesimpulan

Anda telah berhasil menyelesaikan reCAPTCHA v2 menggunakan Puppeteer dan ekstensi CapSolver. Pengaturan ini memberikan cara yang fleksibel dan skalabel untuk menangani tantangan CAPTCHA langsung dalam lingkungan browser nyata. Dengan menyesuaikan konfigurasi ekstensi, alur kerja yang sama dapat digunakan kembali untuk jenis CAPTCHA lain yang didukung oleh CapSolver, membuatnya cocok untuk pengujian, otomatisasi, dan tugas berbasis browser skala besar.

Pertanyaan yang Sering Diajukan (FAQs)

1. Apakah metode ini dapat digunakan dalam mode headless?
Ekstensi CapSolver memerlukan lingkungan browser yang terlihat. Untuk alasan ini, headless: false direkomendasikan saat menggunakan pendekatan berbasis ekstensi.

2. Apakah pengaturan ini berfungsi untuk jenis CAPTCHA selain reCAPTCHA v2?
Ya. Ekstensi CapSolver mendukung berbagai jenis CAPTCHA. Anda dapat mengaktifkan atau menonaktifkan solver CAPTCHA tertentu di file config.json dan menyesuaikan alur kerja sesuai kebutuhan.

3. Apakah proxy diperlukan saat menggunakan ekstensi CapSolver?
Proxy bersifat opsional. Ekstensi mendukung konfigurasi proxy, tetapi banyak penggunaan bekerja tanpa proxy. Penggunaan proxy bergantung pada situs web target dan kebutuhan otomatisasi Anda.

4. Apa perbedaan antara mode token dan click untuk reCAPTCHA?
Mode token mengambil solusi CAPTCHA secara programatis dan biasanya lebih stabil untuk otomatisasi. Mode click mensimulasikan interaksi pengguna dengan checkbox CAPTCHA.

5. Apakah pengaturan ini dapat digunakan dalam lingkungan produksi?
Ya. Dengan konfigurasi yang tepat, penanganan kesalahan, dan pertimbangan skalabilitas, pendekatan ini dapat diintegrasikan ke dalam alur kerja otomatisasi browser yang siap untuk produksi.

Pernyataan Kepatuhan: Informasi yang diberikan di blog ini hanya untuk tujuan informasi. CapSolver berkomitmen untuk mematuhi semua hukum dan peraturan yang berlaku. Penggunaan jaringan CapSolver untuk kegiatan ilegal, penipuan, atau penyalahgunaan sangat dilarang dan akan diselidiki. Solusi penyelesaian captcha kami meningkatkan pengalaman pengguna sambil memastikan kepatuhan 100% dalam membantu menyelesaikan kesulitan captcha selama pengambilan data publik. Kami mendorong penggunaan layanan kami secara bertanggung jawab. Untuk informasi lebih lanjut, silakan kunjungi Syarat Layanan dan Kebijakan Privasi.

Lebih lanjut