Singkatnya: bahasa hanya mengubah apa yang terlihat di layar, bukan cara CAPTCHA diselesaikan. Untuk reCAPTCHA, Turnstile, dan tipe berbasis token lain, teks widget bisa muncul dalam bahasa Jepang, Rusia, atau Inggris — tetapi tokennya identik. Yang benar-benar bergantung pada bahasa hanyalah image CAPTCHA (OCR), karena karakter di dalam gambar memang berubah. Artikel ini menjelaskan sinyal apa yang menentukan bahasa tampilan dan kapan itu penting untuk otomatisasi Anda.
Yang berubah hanya UI, bukan token
Situs yang sama bisa menampilkan tantangan berbeda ke dua pengunjung hanya karena konfigurasi bahasa mereka berbeda. Tabel berikut memisahkan bagian yang ikut berubah dari bagian yang tetap konstan per penyedia:
| Penyedia CAPTCHA | Yang dilokalisasi | Yang tetap sama |
|---|---|---|
| reCAPTCHA | Teks UI, label gambar, bahasa audio | Sitekey, alur verifikasi, format token |
| Cloudflare Turnstile | Teks widget dan pesan error | Sitekey, format token, mekanisme penyelesaian |
| hCaptcha | Instruksi tantangan, label kategori | Sitekey, format token |
| Image/OCR | Rangkaian karakter, bahasa teks | Format gambar, alur submit/poll |
Polanya jelas dari dua kolom terakhir:
- Untuk tiga penyedia pertama, sitekey dan format token tetap konstan — dan itulah yang dibutuhkan sebuah solver.
- Hanya di Image/OCR bahasa menjadi bagian dari input, karena karakternya ikut berubah.
Pengaruhnya saat Anda menyelesaikan CAPTCHA
CAPTCHA berbasis token
Pengaturan bahasa memengaruhi UI, bukan token. Proses penyelesaian CaptchaAI untuk reCAPTCHA v2/v3 dan Cloudflare Turnstile tidak bergantung pada bahasa:
- Kirim sitekey dan URL halaman.
- CaptchaAI mengembalikan token yang valid.
- Token berfungsi apa pun bahasa widget-nya.
Tidak ada parameter bahasa untuk tipe ini. Catatan jujur: hCaptcha dan FunCaptcha juga berbasis token, tetapi belum didukung CaptchaAI — jadi pola "token bebas bahasa" berlaku untuk reCAPTCHA dan Turnstile, bukan hCaptcha.
Image CAPTCHA (OCR)
Di sinilah bahasa benar-benar berpengaruh, karena karakter di dalam gambar ikut berubah. Set parameter language agar cocok dengan skrip yang ditampilkan:
| Bahasa situs | Konten CAPTCHA | Parameter bahasa CaptchaAI |
|---|---|---|
| Inggris | "Enter the text: XKCD42" | 0 (default/Latin) |
| Rusia | "Введите текст: ШКАФ" | 1 (Sirilik) atau 2 |
| Cina | "请输入验证码: 汉字" | 2 (non-Latin) |
| Arab | "أدخل النص: عربي" | 2 (non-Latin) |
| Jepang | "文字を入力: ひらがな" | 2 (non-Latin) |
Audio reCAPTCHA mengikuti parameter hl atau header Accept-Language. CaptchaAI menanganinya lewat alur penyelesaian reCAPTCHA standar — metodenya tidak bergantung pada bahasa audio.
Bagaimana penyedia menentukan bahasa
Penyedia CAPTCHA memilih bahasa dari beberapa sinyal. Memahaminya membantu Anda mengontrol tampilan yang muncul saat scraping.
1. Header Accept-Language
Accept-Language: ja-JP,ja;q=0.9,en-US;q=0.8,en;q=0.7
Header ini memberi tahu server urutan preferensi: Jepang (Jepang) lebih dulu, lalu Inggris (AS), lalu Inggris generik. reCAPTCHA dan Turnstile membacanya untuk memilih bahasa UI.
2. Parameter HTML hl
reCAPTCHA menerima parameter bahasa eksplisit saat dimuat:
<!-- Force English reCAPTCHA -->
<script src="https://www.google.com/recaptcha/api.js?hl=en"></script>
<!-- Force Japanese -->
<script src="https://www.google.com/recaptcha/api.js?hl=ja"></script>
Parameter hl mengalahkan header Accept-Language. Saat menyelesaikan, Anda tidak perlu mencocokkannya — CaptchaAI mengembalikan token apa pun bahasa UI-nya.
3. Lokasi geo-IP
Sebagian konfigurasi CAPTCHA berbeda menurut wilayah IP:
| Sinyal | Efek |
|---|---|
| IP dari Tiongkok | Mungkin memunculkan GeeTest alih-alih reCAPTCHA (reCAPTCHA diblokir di Tiongkok) |
| IP dari UE | Bisa menampilkan persetujuan GDPR sebelum CAPTCHA |
| IP dari wilayah berisiko tinggi | Mungkin memicu tantangan yang lebih ketat |
Ini kerap mengejutkan tim yang men-deploy dari cloud. Worker di region AWS ap-southeast-3 (Jakarta) bisa melihat tantangan berbeda dibanding saat diuji dari koneksi rumah, karena geo-IP pusat data tidak sama dengan geo-IP residensial. Selaraskan wilayah proxy dengan bahasa yang diharapkan.
4. navigator.language di browser
CAPTCHA berbasis JavaScript membaca bahasa browser:
navigator.language // "en-US"
navigator.languages // ["en-US", "en", "ja"]
Di browser headless, nilai ini default ke lokal sistem. Tetapkan secara eksplisit agar cocok dengan target Anda:
// Playwright
const context = await browser.newContext({
locale: 'ja-JP',
});
// Puppeteer
const page = await browser.newPage();
await page.setExtraHTTPHeaders({
'Accept-Language': 'ja-JP,ja;q=0.9',
});
Masalah lokalisasi yang sering muncul
Bahasa scraper tidak sinkron dengan situs target
Jika scraper mengirim
Accept-Language: en-USke situs Jepang, CAPTCHA mungkin muncul dalam bahasa Inggris. Untuk tipe berbasis token hal ini tidak masalah, tetapi bisa memicu masalah jika situs memeriksa konsistensi bahasa antara header dan sinyal lain. Terkait UU Pelindungan Data Pribadi (UU 27/2022), pastikan hanya mengambil data yang memang berhak Anda olah.
Penyedia CAPTCHA berbeda per wilayah
Beberapa negara lazim memakai penyedia yang berbeda:
| Wilayah | Penyedia tipikal |
|---|---|
| Pasar Barat | reCAPTCHA, Cloudflare Turnstile, hCaptcha |
| Cina | GeeTest, Tencent CAPTCHA, image khusus |
| Rusia/CIS | Image CAPTCHA khusus, reCAPTCHA |
| Korea Selatan | Slider khusus, image CAPTCHA |
Tabel pemecahan masalah
| Masalah | Penyebab | Solusi |
|---|---|---|
| reCAPTCHA muncul di bahasa yang tak diharapkan | Parameter hl di script tag bentrok dengan header Accept-Language |
Token bebas bahasa — tidak memengaruhi penyelesaian |
| Karakter image CAPTCHA salah dibaca | Parameter bahasa tidak cocok dengan skrip CAPTCHA | Set language=2 untuk CAPTCHA non-Latin |
| Situs menyajikan tipe CAPTCHA berbeda per wilayah | Pemilihan penyedia berbasis geo-IP | Pakai proxy yang cocok dengan wilayah target |
| Browser headless memakai lokal yang salah | Lokal sistem default terpakai | Set locale eksplisit di konteks browser |
| Audio CAPTCHA dalam bahasa tak terduga | Parameter hl mengalahkan header |
Tidak memengaruhi penyelesaian berbasis token |
Pertanyaan umum
Apakah saya perlu mengirim parameter bahasa ke CaptchaAI untuk reCAPTCHA atau Turnstile?
Tidak. Untuk reCAPTCHA dan Cloudflare Turnstile, penyelesaian bebas bahasa — cukup kirim sitekey dan URL halaman. Parameter language hanya relevan untuk image CAPTCHA (OCR).
Parameter language mana yang dipakai untuk image CAPTCHA berbahasa Rusia atau Mandarin?
Untuk teks Sirilik seperti Rusia, gunakan 1 (atau 2). Untuk skrip non-Latin seperti Mandarin, Jepang, atau Arab, gunakan 2. Teks Latin biasa memakai 0. Cocokkan nilainya dengan karakter yang benar-benar tampil di gambar.
Bagaimana cara memaksa locale di browser headless agar cocok dengan situs target?
Set locale saat membuat context di Playwright, atau kirim header Accept-Language lewat setExtraHTTPHeaders di Puppeteer (lihat contoh kode di atas). Ini mencegah browser memakai lokal sistem yang bisa membocorkan ketidakcocokan bahasa.
Bagaimana dengan hCaptcha di situs berbahasa non-Latin?
hCaptcha belum didukung saat ini, apa pun bahasa situsnya; untuk itu Anda memerlukan layanan lain. CaptchaAI menyelesaikan reCAPTCHA v2/v3, Cloudflare Turnstile dan Challenge, GeeTest v3, serta image/OCR di bahasa apa pun.
Langkah selanjutnya
Tangani CAPTCHA di lokal mana pun — ambil kunci API CaptchaAI Anda lalu atur parameter bahasa dan locale browser dengan benar.
Panduan terkait:
- Menyelesaikan CAPTCHA di situs web Tiongkok
- Menyelesaikan CAPTCHA di situs Jepang dan Korea