Cara Menyelesaikan Captcha AWS Menggunakan Puppeteer [Javascript] dengan Ekstensi CapSolver

Emma Foster
Machine Learning Engineer
25-Nov-2025

Poin-Poin Utama
- Tantangan Inti: Tugas otomatisasi pencarian AI skala besar menggunakan Puppeteer sering kali diblokir oleh keamanan canggih seperti AWS WAF CAPTCHA.
- Solusi: Metode paling andal untuk otomatisasi browser adalah mengintegrasikan layanan penyelesaian CAPTCHA khusus langsung ke lingkungan browser atau menggunakan panggilan API langsung.
- Implementasi: Dengan memuat Ekstensi CapSolver ke dalam instance Chromium yang dikendalikan Puppeteer, Anda dapat secara otomatis menyelesaikan tantangan AWS WAF tanpa panggilan API kompleks di skrip utama Anda. Sebagai alternatif, API CapSolver menawarkan solusi yang kuat dan tanpa tampilan.
- Praktik Terbaik: Menggunakan ekstensi browser dengan Puppeteer adalah praktik terbaik yang kuat untuk mempertahankan tingkat keberhasilan tinggi dalam otomatisasi pencarian AI.
I. Pendahuluan
Otomatisasi pencarian AI dan scraping web, alat seperti Puppeteer telah menjadi tidak terpisahkan untuk mengendalikan browser tanpa tampilan dan mensimulasikan interaksi manusia. Namun, seiring otomatisasi meningkat, demikian pula tingkat keamanan anti-bot. Salah satu tantangan paling tangguh saat ini adalah AWS WAF CAPTCHA, yang sering mengganggu pengumpulan data skala besar, menyebabkan kegagalan tugas dan pemborosan sumber daya.
Artikel ini memberikan panduan teknis yang terfokus untuk pengembang JavaScript yang menggunakan Puppeteer. Kami akan menunjukkan praktik terbaik yang sangat efektif: mengintegrasikan Ekstensi CapSolver langsung ke dalam pengaturan Puppeteer Anda. Pendekatan ini memungkinkan ekstensi menangani proses penyelesaian CAPTCHA yang kompleks dan berbasis AI untuk tantangan AWS WAF secara mulus. Selain itu, untuk skenario yang memerlukan pendekatan murni tanpa tampilan dan berbasis API, kami akan memberikan contoh JavaScript yang rinci menggunakan API CapSolver, memastikan otomatisasi pencarian AI Anda tetap stabil, tidak terganggu, dan sangat sukses.
II. Memahami Tantangan AWS WAF CAPTCHA
AWS WAF CAPTCHA adalah lapisan keamanan yang kuat yang melebihi pengenalan gambar sederhana. Ini sering melibatkan:
- Analisis Perilaku: Memantau gerakan mouse, input keyboard, dan pola navigasi untuk mendeteksi perilaku yang tidak manusia.
- Tantangan Sisi Klien: Menyisipkan tantangan JavaScript yang kompleks yang memerlukan lingkungan browser yang sebenarnya dan lengkap untuk dieksekusi dengan benar.
- Verifikasi Berbasis Token: Membutuhkan token
aws-waf-tokenyang valid untuk dimasukkan dalam permintaan berikutnya, yang hanya dihasilkan setelah tantangan diselesaikan dengan sukses.
Untuk otomatisasi pencarian AI skala besar, menangani tantangan ini secara manual tidak praktis. Inilah saatnya alat penyelesaian CAPTCHA khusus, khususnya yang diintegrasikan langsung ke lingkungan browser atau melalui API, menjadi praktik terbaik yang penting.
III. Metode 1: Puppeteer dengan Ekstensi CapSolver (Rekomendasi untuk Otomatisasi Browser)
Ekstensi CapSolver berfungsi sebagai jembatan, secara otomatis mendeteksi dan menyelesaikan tantangan CAPTCHA yang dihadapi browser dan menyisipkan token solusi yang diperlukan. Ini adalah metode yang jauh lebih sederhana dan lebih andal untuk otomatisasi browser daripada menggunakan API secara langsung di skrip Puppeteer Anda.
Langkah 1: Unduh dan Konfigurasi Ekstensi CapSolver
Sebelum mengintegrasikan dengan Puppeteer, Anda memerlukan file ekstensi dan kunci API Anda yang dikonfigurasi.
- Unduh: Unduh file ZIP Ekstensi Chrome CapSolver dari situs web CapSolver resmi dan ekstrak ke direktori lokal (misalnya,
./capsolver-extension). - Konfigurasi: Buka file konfigurasi ekstensi (biasanya
config.jsatau serupa) dan masukkan kunci API CapSolver Anda. Ini mengautentikasi ekstensi dengan akun Anda.
Langkah 2: Menjalankan Puppeteer dengan Ekstensi
Fungsi puppeteer.launch() Puppeteer menyediakan opsi untuk memuat ekstensi yang tidak dikemas menggunakan parameter args.
javascript
const puppeteer = require('puppeteer');
const path = require('path');
// Tentukan jalur ke folder ekstensi CapSolver yang diekstrak
const extensionPath = path.join(__dirname, 'capsolver-extension');
async function launchBrowserWithExtension() {
const browser = await puppeteer.launch({
headless: false, // Harus non-headless untuk ekstensi bekerja secara andal
args: [
`--disable-extensions-except=${extensionPath}`,
`--load-extension=${extensionPath}`,
'--no-sandbox', // Direkomendasikan untuk beberapa lingkungan
],
});
return browser;
}
// Contoh penggunaan:
// const browser = await launchBrowserWithExtension();
// const page = await browser.newPage();
// await page.goto('https://situs-aws-waf-anda.com');
Langkah 3: Alur Otomatisasi Pencarian AI
Setelah browser dijalankan dengan Ekstensi CapSolver, alur otomatisasi menjadi jauh lebih sederhana. Ekstensi secara otomatis memantau halaman. Jika AWS WAF CAPTCHA terdeteksi, ekstensi mengambil alih, menyelesaikannya menggunakan layanan CapSolver, dan halaman secara otomatis memuat ulang atau melanjutkan.
Inti dari skrip otomatisasi pencarian AI Anda hanya perlu menavigasi ke halaman target dan menunggu CAPTCHA diselesaikan.
javascript
const puppeteer = require('puppeteer');
const path = require('path');
// ... (fungsi launchBrowserWithExtension dari Langkah 2) ...
async function runAwsWafAutomation() {
const browser = await launchBrowserWithExtension();
const page = await browser.newPage();
// 1. Navigasi ke URL yang dilindungi AWS WAF
const targetUrl = 'https://efw47fpad9.execute-api.us-east-1.amazonaws.com/latest'; // Contoh URL
console.log(`Mengarahkan ke ${targetUrl}...`);
await page.goto(targetUrl, { waitUntil: 'domcontentloaded' });
// 2. Menunggu CAPTCHA diselesaikan
// Ekstensi CapSolver akan secara otomatis mendeteksi dan menyelesaikan AWS WAF CAPTCHA.
// PRAKTEK TERBAIK: Menunggu ketiadaan elemen CAPTCHA atau kehadiran konten target.
try {
// Mengasumsikan CAPTCHA memiliki selektor tertentu, misalnya, '#aws-waf-captcha-container'
// Kami menunggu elemen ini menghilang (yaitu, CAPTCHA diselesaikan dan halaman melanjutkan)
console.log("Menunggu AWS WAF CAPTCHA diselesaikan oleh Ekstensi CapSolver...");
await page.waitForSelector('#aws-waf-captcha-container', { hidden: true, timeout: 60000 });
console.log("CAPTCHA diselesaikan! Melanjutkan dengan otomatisasi pencarian AI.");
// 3. Lanjutkan dengan logika otomatisasi pencarian AI Anda
// Contoh: Mengekstrak data dari halaman yang sekarang dapat diakses
const pageTitle = await page.title();
console.log(`Judul Halaman (Setelah CAPTCHA): ${pageTitle}`);
} catch (error) {
console.error("Penyelesaian CAPTCHA timeout atau gagal:", error.message);
}
await browser.close();
}
// runAwsWafAutomation();
IV. Metode 2: Otomatisasi Pencarian AI Tanpa Tampilan dengan API CapSolver (Alternatif)
Untuk pengembang yang lebih suka lingkungan murni tanpa tampilan atau memerlukan logika penyelesaian CAPTCHA yang diintegrasikan ke dalam aplikasi yang tidak berbasis browser, API CapSolver menawarkan alternatif yang kuat. Metode ini memerlukan Anda untuk mengekstrak parameter AWS WAF yang diperlukan (awsKey, awsIv, awsContext, dll.) dari halaman yang diblokir dan meneruskannya ke API.
Klaim Kode Bonus CapSolver Anda
Jangan lewatkan kesempatan untuk mengoptimalkan operasi Anda lebih lanjut! Gunakan kode bonus CAPN saat menambahkan dana ke akun CapSolver Anda dan dapatkan bonus tambahan 5% pada setiap penambahan, tanpa batas. Kunjungi CapSolver untuk mengklaim bonus Anda sekarang!
Implementasi API JavaScript (Node.js)
Contoh ini menggunakan API fetch standar (tersedia di Node.js modern) untuk berkomunikasi dengan CapSolver, berdasarkan struktur tugas yang disediakan dalam dokumentasi CapSolver.
javascript
const fetch = require('node-fetch'); // Gunakan 'node-fetch' untuk versi Node.js lama, atau fetch bawaan untuk versi baru
const CAPSOLVER_API_KEY = 'KUNCI_API_CAPSOLVER_ANDA';
const API_URL = 'https://api.capsolver.com';
/**
* Menyelesaikan AWS WAF CAPTCHA menggunakan API CapSolver.
* @param {string} websiteURL URL halaman yang menampilkan CAPTCHA.
* @param {object} awsParams Parameter yang diekstrak dari halaman yang diblokir (awsKey, awsIv, awsContext, dll.).
* @returns {Promise<string>} Nilai cookie aws-waf-token.
*/
async function solveAwsWafCaptcha(websiteURL, awsParams) {
// 1. Buat tugas
const createTaskPayload = {
clientKey: CAPSOLVER_API_KEY,
task: {
type: "AntiAwsWafTaskProxyLess", // Gunakan AntiAwsWafTask jika Anda perlu menentukan proxy
websiteURL: websiteURL,
...awsParams // Teruskan parameter yang diekstrak
}
};
let response = await fetch(`${API_URL}/createTask`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(createTaskPayload)
});
let result = await response.json();
if (result.errorId !== 0) {
throw new Error(`Kesalahan API CapSolver (createTask): ${result.errorDescription}`);
}
const taskId = result.taskId;
console.log(`Tugas dibuat dengan ID: ${taskId}. Menunggu hasil...`);
// 2. Poll hasil
const getResultPayload = {
clientKey: CAPSOLVER_API_KEY,
taskId: taskId
};
let solution = null;
for (let i = 0; i < 15; i++) { // Poll hingga 15 kali (maksimal 30 detik)
await new Promise(resolve => setTimeout(resolve, 2000)); // Tunggu 2 detik
response = await fetch(`${API_URL}/getTaskResult`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(getResultPayload)
});
result = await response.json();
if (result.errorId !== 0) {
throw new Error(`Kesalahan API CapSolver (getTaskResult): ${result.errorDescription}`);
}
if (result.status === 'ready') {
solution = result.solution;
break;
}
console.log(`Status: ${result.status}. Mencoba lagi...`);
}
if (!solution || !solution.cookie) {
throw new Error("CapSolver gagal mengembalikan token yang valid dalam waktu yang ditentukan.");
}
// solution.cookie berisi aws-waf-token
return solution.cookie;
}
// Contoh penggunaan dalam skrip Puppeteer tanpa tampilan:
/*
async function runHeadlessApiAutomation() {
// 1. Gunakan Puppeteer untuk navigasi dan mengekstrak parameter AWS WAF (misalnya, dari tag skrip atau respons jaringan)
// Langkah ini memerlukan keterampilan Puppeteer lanjutan untuk menangkap permintaan jaringan atau menganalisis sumber HTML.
const websiteURL = 'https://efw47fpad9.execute-api.us-east-1.amazonaws.com/latest';
const extractedAwsParams = {
awsKey: "AQIDAHjcYu/GjX+QlghicBg......",
awsIv: "CgAAFDIlckAAAAid",
awsContext: "7DhQfG5CmoY90ZdxdHCi8WtJ3z......",
// ... parameter opsional lainnya
};
try {
const awsWafToken = await solveAwsWafCaptcha(websiteURL, extractedAwsParams);
console.log(`Berhasil mendapatkan Token AWS WAF: ${awsWafToken.substring(0, 30)}...`);
// 2. Sisipkan token kembali ke sesi Puppeteer atau gunakan dalam header/cookie permintaan berikutnya
// Contoh: Menyisipkan sebagai cookie untuk permintaan berikutnya
// await page.setCookie({
// name: 'aws-waf-token',
// value: awsWafToken,
// domain: new URL(websiteURL).hostname,
// path: '/',
// });
// await page.reload({ waitUntil: 'networkidle0' });
} catch (error) {
console.error("Pengotomatan API Gagal:", error.message);
}
}
*/
V. Otomatisasi Pencarian AI Praktik Terbaik: Melebihi CAPTCHA
Meskipun penyelesaian CAPTCHA kritis, sistem otomatisasi pencarian AI yang sukses memerlukan pendekatan berlapis.
| Praktik Terbaik | Deskripsi | Relevansi dengan Puppeteer/JS |
|---|---|---|
| Mode Rahasia | Gunakan perpustakaan seperti puppeteer-extra dengan puppeteer-extra-plugin-stealth untuk menyembunyikan tanda-tanda otomatisasi. |
Esensial untuk melewati pemeriksaan bot awal sebelum AWS WAF CAPTCHA bahkan ditampilkan. |
| Rotasi IP | Integrasikan layanan proxy untuk mengganti alamat IP, mencegah pembatasan kecepatan dan pemblokiran IP. | Gunakan argumen --proxy-server dalam puppeteer.launch() untuk mengarahkan lalu lintas melalui proxy berbasis rumah berkualitas tinggi. |
| Waktu Mirip Manusia | Implementasikan penundaan acak, tidak linear antara tindakan (misalnya, mengetik, mengklik, menggulir). | Gunakan page.waitForTimeout(Math.random() * 3000 + 1000) untuk menambahkan penundaan acak antara 1 hingga 4 detik. |
| Manajemen Sesi | Simpan kuki dan penyimpanan lokal antar sesi untuk mempertahankan profil pengguna yang konsisten. | Gunakan opsi userDataDir dalam puppeteer.launch() untuk menyimpan dan menggunakan kembali profil browser. |
VI. Kesimpulan dan Panggilan untuk Bertindak (CTA)
Kombinasi kontrol browser yang kuat dari Puppeteer dan kemampuan penyelesaian CAPTCHA khusus dari CapSolver menawarkan solusi definitif untuk tantangan AWS WAF CAPTCHA dalam otomatisasi pencarian AI. Untuk lingkungan murni tanpa tampilan, API CapSolver menyediakan kekuatan dan fleksibilitas yang diperlukan. Dengan mengadopsi metode praktik terbaik ini, pengembang dapat memastikan alur pengumpulan data mereka tahan lama, efisien, dan mempertahankan tingkat keberhasilan tinggi.
Siap meningkatkan tingkat keberhasilan otomatisasi Anda? Berhenti membiarkan blokir CAPTCHA mengganggu alur kerja Anda. Klik di sini untuk mempelajari lebih lanjut tentang Ekstensi CapSolver dan kemampuan penyelesaian AWS WAF yang kuat, dan mulai uji coba gratis hari ini!
VII. Pertanyaan yang Sering Diajukan (FAQ)
P1: Mengapa menggunakan Ekstensi CapSolver daripada API untuk Puppeteer?
Meskipun API CapSolver sangat efektif, menggunakan Ekstensi menyederhanakan kode secara signifikan. Ekstensi beroperasi di dalam konteks browser, secara otomatis mendeteksi CAPTCHA, menyelesaikannya, dan menyisipkan token/cookie yang diperlukan (aws-waf-token) tanpa memerlukan skrip utama Puppeteer Anda untuk mengelola siklus permintaan/respons API yang kompleks. Ini adalah praktik terbaik kunci untuk kode otomatisasi browser yang bersih dan mudah dipelihara.
P2: Apakah Ekstensi CapSolver berfungsi dengan mode tanpa tampilan?
Untuk menjalankan ekstensi CapSolver secara andal, terutama untuk tantangan perilaku yang kompleks seperti AWS WAF CAPTCHA, umumnya disarankan untuk menjalankan Puppeteer dalam mode non-headless (headless: false). Ini memastikan lingkungan browser yang lengkap, termasuk skrip latar belakang ekstensi dan komponen visual, aktif untuk menangani tantangan tersebut.
Q3: Apa perbedaan utama antara AWS WAF CAPTCHA dan reCAPTCHA v3?
AWS WAF CAPTCHA biasanya merupakan tantangan blok langsung yang diimplementasikan oleh Amazon Web Application Firewall, seringkali memerlukan token untuk melanjutkan. Di sisi lain, reCAPTCHA v3 adalah sistem berbasis skor yang berjalan diam-diam di latar belakang. Namun, keduanya sangat bergantung pada analisis perilaku, sehingga penggunaan teknik stealth dan layanan penyelesaian CAPTCHA khusus menjadi praktik terbaik yang diperlukan untuk keduanya.
Q4: Bagaimana cara memastikan skrip Puppeteer saya tidak terdeteksi sebagai bot?
Selain menggunakan Ekstensi CapSolver untuk penyelesaian CAPTCHA, Anda harus menerapkan praktik terbaik otomatisasi pencarian AI, seperti:
- Menggunakan
puppeteer-extradengan plugin stealth. - Menerapkan jeda yang menyerupai manusia.
- Mengganti proksi perumahan berkualitas tinggi.
- Memelihara profil browser yang tetap (
userDataDir).
Q5: Di mana saya bisa menemukan informasi lebih lanjut tentang integrasi CapSolver dan Puppeteer?
Anda dapat menemukan panduan dan contoh kode yang rinci di blog CapSolver:
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

Cara Menyelesaikan Captcha / Tantangan AWS dengan Python
Panduan praktis untuk mengatasi tantangan AWS WAF menggunakan Python dan CapSolver, memungkinkan akses yang lebih lancar ke situs web yang dilindungi

Ethan Collins
04-Dec-2025

Cara Menyelesaikan Token CAPTCHA AWS
Blog ini menjelaskan bagaimana Anda dapat menyelesaikan / menyelesaikan amazon waf captcha dengan cara yang cepat, murah, dan mudah dengan menggunakan capsolver.com

Adélia Cruz
01-Dec-2025

Cara menyelesaikan AWS Captcha dengan NodeJS
Dalam artikel ini, kami akan menunjukkan kepada Anda cara menyelesaikan AWS Captcha / Tantangan dengan Node.JS.

Anh Tuan
30-Nov-2025
![Cara Menyelesaikan Captcha AWS Menggunakan Puppeteer [Javascript] dengan Ekstensi CapSolver](https://assets.capsolver.com/prod/posts/aws-captcha-solver-puppeteer/5e93a8e9739b4c24ab2f6cbba8563a93.png)
Cara Menyelesaikan Captcha AWS Menggunakan Puppeteer [Javascript] dengan Ekstensi CapSolver
Pelajari cara menyelesaikan Captcha AWS secara mulus dengan Puppeteer dan Capsolver Extension, panduan lengkap tentang mengatur dan mengotomasi solusi Captcha secara efektif

Emma Foster
25-Nov-2025

Top 5 Alat Pengatasi Tantangan AWS WAF untuk Otomatisasi Perusahaan dan Scraping Web
Temukan 5 alat pemecah tantangan AWS WAF terbaik untuk pengambilan data web yang berjalan lancar dan otomatisasi perusahaan. Temukan solusi terbaik untuk menghindari AWS WAF.

Adélia Cruz
13-Nov-2025

Penyelesaian Otomatis CAPTCHA AWS WAF Menggunakan Integrasi API atau Peramban
Ketahui cara menyelesaikan CAPTCHA AWS WAF secara otomatis menggunakan ekstensi browser dan integrasi API. Panduan ini mencakup pengenalan gambar, tantangan berbasis token, dan solusi CapSolver untuk otomatisasi yang mulus dan penggalian web.

Emma Foster
23-Oct-2025


