Lewati ke konten
StatusDasbor

Panduan

Cara menemukan parameter reCAPTCHA

Halaman ini diterjemahkan otomatis dari versi bahasa Mandarin dan mungkin mengandung kesalahan. Versi bahasa Mandarin menjadi acuan utama.

Untuk membuat tugas reCAPTCHA, Anda memerlukan websiteURL (alamat halaman tempat captcha muncul) dan websiteKey (kunci situs); v3 juga memerlukan pageAction. Jika Anda mensimulasikan pengiriman dengan alat seperti Selenium, Anda juga perlu mengetahui fungsi callback. Semuanya dapat ditemukan di developer tools browser (F12).

Buka halaman tempat captcha muncul, tekan F12 untuk membuka Console, lalu tempel dan jalankan:

find-recaptcha-clients.js
// Paste into the browser DevTools console on a page with reCAPTCHA, then run findRecaptchaClients().
// Lists every reCAPTCHA on the page: version (V2/V3), sitekey, page URL and the callback function.
function findRecaptchaClients() {
if (typeof ___grecaptcha_cfg === 'undefined') return [];
return Object.entries(___grecaptcha_cfg.clients).map(([cid, client]) => {
const data = { id: cid, version: cid >= 10000 ? 'V3' : 'V2' };
const objects = Object.entries(client).filter(([, value]) => value && typeof value === 'object');
objects.forEach(([toplevelKey, toplevel]) => {
const found = Object.entries(toplevel).find(
([, value]) => value && typeof value === 'object' && 'sitekey' in value && 'size' in value,
);
if (toplevel instanceof HTMLElement && toplevel.tagName === 'DIV') data.pageurl = toplevel.baseURI;
if (found) {
const [sublevelKey, sublevel] = found;
data.sitekey = sublevel.sitekey;
const callbackKey = data.version === 'V2' ? 'callback' : 'promise-callback';
const callback = sublevel[callbackKey];
if (!callback) {
data.callback = null;
data.function = null;
} else {
data.function = callback;
const keys = [cid, toplevelKey, sublevelKey, callbackKey].map((key) => `['${key}']`).join('');
data.callback = `___grecaptcha_cfg.clients${keys}`;
}
}
});
return data;
});
}
findRecaptchaClients();

Pada hasilnya, sitekey adalah websiteKey, pageurl adalah websiteURL, version menunjukkan v2 atau v3, dan function serta callback adalah fungsi callback:

[
{
"id": "0",
"version": "V2",
"sitekey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
"function": "onSuccess",
"callback": "___grecaptcha_cfg.clients['0']['l']['l']['callback']",
"pageurl": "https://www.google.com/recaptcha/api2/demo"
}
]

Jika hasilnya array kosong, berarti halaman belum memuat reCAPTCHA. Jalankan lagi setelah captcha muncul.

Di panel Network, cari anchor, lalu temukan request seperti ini:

https://www.google.com/recaptcha/api2/anchor?ar=1&k=6LfW6wATAAAAAHLqO2pb8bDBahxlMxNdo9g947u9&co=...&hl=en&size=normal
  • Nilai setelah k= adalah websiteKey.
  • Isi websiteURL dengan alamat lengkap halaman tempat captcha muncul (biasanya sama dengan Referer dari request ini).

Anda juga dapat mencari data-sitekey di source halaman.

pageAction adalah action yang dikirim halaman saat memanggil grecaptcha.execute(kunci situs, {action: '...'}), dan harus sama dengan yang ada di halaman.

Metode 1: cari di source. Di panel Sources pada developer tools, klik kanan lalu pilih “Search in all files”. Untuk v3 biasa, cari .execute(; untuk v3 Enterprise, cari .enterprise.execute. Lihat action yang mengikutinya:

grecaptcha.ready(function () {
grecaptcha.execute('6LdpS-gUAAAAAL3Qr2yP7rkrQjkKBVvEY_48JS5l', { action: 'login' }).then(function (token) {
// ...
});
});

Di sini pageAction adalah login.

Metode 2: breakpoint. Jika kode diobfuskasi dan pencarian tidak menemukan apa pun, jalankan debug(grecaptcha.execute) di Console (untuk Enterprise: debug(grecaptcha.enterprise.execute)), lalu lakukan tindakan di halaman yang memicu verifikasi (misalnya klik Masuk). Setelah breakpoint berhenti, lihat nilai action di panel Scope di sisi kanan.

Satu situs bisa memakai action berbeda di langkah yang berbeda (misalnya saat pendaftaran, signup/submit_email lalu signup/success). Ambil nilai untuk langkah yang ingin Anda lewati. Tekan F8 untuk melanjutkan eksekusi dan melihat action berikutnya.

Saat mengisi token di browser dengan alat seperti Selenium, setelah mengisi Anda perlu memanggil fungsi callback halaman untuk memberi tahu halaman bahwa verifikasi sudah selesai:

  • Cari data-callback di panel Elements; nilainya adalah nama fungsi callback, misalnya data-callback="onSuccess".
  • Atau cari grecaptcha.render dan lihat callback di parameternya.
  • Atau periksa ___grecaptcha_cfg.clients di Console, atau gunakan skrip pencarian otomatis di atas.

Cara memanggilnya:

driver.execute_script("onSuccess(arguments[0])", g_recaptcha_response)

Sebagian halaman tidak memiliki fungsi callback; cukup isi token ke kolom teks g-recaptcha-response, lalu kirim formulirnya. Alur lengkapnya ada di Menyelesaikan reCAPTCHA dengan token.