reCAPTCHA v2 Görünmez'in görünür bir onay kutusu yoktur. Kullanıcı bir form gönderdiğinde veya bir düğmeyi tıkladığında otomatik olarak etkinleşir ve yalnızca Google'ın risk analizi şüpheli bir davranış tespit ederse bir sorgulama gösterir. Bu, otomasyonda tespit edilmesini zorlaştırır; form gönderiminiz başarısız olana kadar bir CAPTCHA'nın olduğunu fark etmeyebilirsiniz.
Görünmez reCAPTCHA'nın standart v2'den farkı nedir?
| Özellik | reCAPTCHA v2 Standardı | reCAPTCHA v2 Görünmez |
|---|---|---|
| Görünür widget | Evet (onay kutusu) | Hayır (yalnızca rozet) |
| Kullanıcı etkileşimi | Onay kutusunu tıklayın | Form gönderildiğinde otomatik |
data-size |
normal veya compact |
invisible |
| Meydan okuma açılır penceresi | Her zaman mümkün | Yalnızca şüpheli kullanıcılar için |
| DOM öğesi | .g-recaptcha div |
.g-recaptcha div veya programatik |
Görünmez reCAPTCHA'yı Algılama
Yöntem 1: Veri boyutu özelliğini kontrol edin
// Browser console
const widgets = document.querySelectorAll('.g-recaptcha');
widgets.forEach((el, i) => {
const size = el.getAttribute('data-size');
const sitekey = el.getAttribute('data-sitekey');
console.log(`Widget ${i}: size=${size}, sitekey=${sitekey}`);
if (size === 'invisible') {
console.log(' → This is Invisible reCAPTCHA');
}
});
Yöntem 2: Rozeti kontrol edin
Görünmez reCAPTCHA'nın köşesinde küçük bir rozet görünüyor:
const badge = document.querySelector('.grecaptcha-badge');
if (badge) {
console.log('reCAPTCHA badge found — likely Invisible reCAPTCHA');
console.log('Badge visibility:', getComputedStyle(badge).visibility);
}
Yöntem 3: Grecaptcha.execute çağrılarını kontrol edin
Sayfa programatik çağırma kullanıyorsa (.g-recaptcha div yok):
// Look for grecaptcha.execute in page scripts
document.querySelectorAll('script:not([src])').forEach(s => {
if (s.textContent.includes('grecaptcha.execute')) {
console.log('Found grecaptcha.execute — Invisible reCAPTCHA');
const match = s.textContent.match(/grecaptcha\.execute\s*\(\s*['"]?([^'",\s)]+)/);
if (match) console.log('Sitekey:', match[1]);
}
});
Yöntem 4: Komut dosyası etiketi oluşturma parametresini kontrol edin
document.querySelectorAll('script[src*="recaptcha"]').forEach(s => {
if (s.src.includes('render=') && !s.src.includes('render=explicit')) {
console.log('Invisible/v3 reCAPTCHA detected in script:', s.src);
}
});
CaptchaAI ile çözme
Temel fark: invisible=1'yi CaptchaAI'ye iletin, böylece çözücü, Görünmez bir değişkeni işlediğini bilir.
Python
import requests
import time
API_KEY = "YOUR_API_KEY"
# Submit with invisible flag
resp = requests.post("https://ocr.captchaai.com/in.php", data={
"key": API_KEY,
"method": "userrecaptcha",
"googlekey": "6Le-SITEKEY",
"pageurl": "https://staging.example.com/qa-login",
"invisible": "1", # critical for Invisible reCAPTCHA
"json": "1",
}).json()
if resp["status"] != 1:
raise Exception(f"Submit error: {resp['request']}")
task_id = resp["request"]
print(f"Submitted: {task_id}")
# Poll for result
for _ in range(24):
time.sleep(5)
result = requests.get("https://ocr.captchaai.com/res.php", params={
"key": API_KEY, "action": "get", "id": task_id, "json": "1"
}).json()
if result["status"] == 1:
print(f"Token: {result['request'][:50]}...")
break
if result["request"] != "CAPCHA_NOT_READY":
raise Exception(f"Error: {result['request']}")
JavaScript
const axios = require('axios');
const resp = await axios.post('https://ocr.captchaai.com/in.php', null, {
params: {
key: 'YOUR_API_KEY',
method: 'userrecaptcha',
googlekey: '6Le-SITEKEY',
pageurl: 'https://staging.example.com/qa-login',
invisible: 1,
json: 1,
}
});
const taskId = resp.data.request;
console.log(`Submitted: ${taskId}`);
Görünmez reCAPTCHA için jeton enjeksiyonu
Görünmez reCAPTCHA genellikle bir düğmeye veya form gönderimine bağlıdır. Enjeksiyondan sonra geri aramayı tetiklemeniz veya formu göndermeniz gerekir:
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get("https://staging.example.com/qa-login")
# After solving, inject and trigger
driver.execute_script("""
// Set the token
document.querySelector('textarea[name="g-recaptcha-response"]').value = arguments[0];
// Find and trigger the callback
var widget = document.querySelector('.g-recaptcha');
var callbackName = widget ? widget.getAttribute('data-callback') : null;
if (callbackName && typeof window[callbackName] === 'function') {
window[callbackName](arguments[0]);
}
""", token)
# Submit the form
driver.find_element(By.CSS_SELECTOR, "form#login").submit()
Tetikleyici öğenin belirlenmesi
Görünmez reCAPTCHA belirli bir düğmeye bağlanabilir:
<button class="g-recaptcha"
data-sitekey="6Le-SITEKEY"
data-callback="onSubmit"
data-size="invisible">
Submit
</button>
Veya programlı olarak etkinleştirildi:
// Site's code
document.getElementById('submit-btn').addEventListener('click', function() {
grecaptcha.execute();
});
Her iki modeli de kontrol edin:
// Find elements with g-recaptcha class that are buttons
document.querySelectorAll('button.g-recaptcha, input.g-recaptcha').forEach(el => {
console.log('Trigger element:', el.tagName, el.textContent.trim());
console.log(' data-sitekey:', el.getAttribute('data-sitekey'));
console.log(' data-callback:', el.getAttribute('data-callback'));
});
Sorun giderme
| Sorun | Sebep | Düzeltme |
|---|---|---|
| Jeton reddedildi | Gönderimde invisible=1 eksik |
CaptchaAI isteğine invisible: "1" ekleyin |
| Site anahtarını bulamıyorum | .g-recaptcha div yok |
Programatik grecaptcha.render() veya grecaptcha.execute() çağrılarını kontrol edin |
| Form gönderilir ancak başarısız olur | Geri arama tetiklenmedi | data-callback işlevini bulun ve çağırın |
| CAPTCHA algılanmadı | Yalnızca şüpheli trafikte görünür | grecaptcha-badge öğesini veya recaptcha komut dosyası etiketlerini kontrol edin |
SSS
Görünmez v2'yi v3'ten nasıl ayırt edebilirim?
Görünmez v2, action parametresi olmadan grecaptcha.execute()'yi kullanır. v3, bir eylemle grecaptcha.execute(sitekey, {action: 'submit'})'yi kullanır. Ayrıca v3, komut dosyası URL'sinde render=SITEKEY'yi kullanır.
Görünmez bayrağı unutmak önemli mi?
Evet. invisible=1 olmadan çözümleyici, site tarafından reddedilen tokenları üreten farklı bir çözümleme yaklaşımı deneyebilir.
Görünmez reCAPTCHA'yı tarayıcı olmadan çözebilir miyim?
Evet — yalnızca site anahtarına ve sayfa URL'sine ihtiyacınız var. Tarayıcının yalnızca belirteci enjekte etmesi ve geri aramayı tetiklemesi gerekir.
reCAPTCHA v2 Görünmezliği CaptchaAI ile sorunsuz bir şekilde çözün
API anahtarınızı şu adresten alın:captchaai.com.