API Eğitimleri

API Kullanarak reCAPTCHA Görünmezliği Nasıl Çözülür?

Görünmez reCAPTCHA, kullanıcı bir düğmeyi tıkladığında veya bir form gönderdiğinde etkinleşir; onay kutusu yoktur. Mücadele arka planda gerçekleşir ve sayfa yalnızca belirteç doğrulandığında devam eder. Bunu CaptchaAI aracılığıyla çözmek standart v2'ye benzer, tek bir önemli eklemeyle: API isteğinizde invisible=1'yi iletmelisiniz.

Entegrasyondaki en büyük fark tokenı nasıl enjekte ettiğinizdir. Çoğu görünmez uygulama, gizli g-recaptcha-response alanı yerine bir geri çağırma işlevi kullanır. Bu geri aramayı bulup aramanız gerekir.

Görünmez mi yoksa standart v2 mi olduğundan emin değil misiniz? OkuyunreCAPTCHA v2 vs Görünmez Açıklamasıalgılama ipuçları için.


İhtiyacınız olan şey

Gereksinim Ayrıntılar
CaptchaAI API anahtarı captchaai.com/api.php
Site anahtarı Widget veya düğmedeki data-sitekey'den
Sayfa URL'si Görünmez CAPTCHA'nın çalıştığı tam URL
Tarayıcı aracı Geri aramayı yürütmek için Selenium/Puppeteer

1. Adım: Görünmez reCAPTCHA'yı tespit edin

Sayfa HTML'sinde şu kalıpları arayın:

<!-- Option 1: div with data-size="invisible" -->
<div class="g-recaptcha" data-sitekey="6LdKlZEU..." data-size="invisible" data-callback="onSubmit"></div>

<!-- Option 2: button with data-sitekey (invisible by default) -->
<button data-sitekey="6LdKlZEU..." data-callback="onSubmit">Submit</button>

<!-- Option 3: programmatic execution -->
<script>
  grecaptcha.execute('6LdKlZEU...', {action: 'submit'});
</script>

data-size="invisible"'yi, data-sitekey içeren bir düğmeyi veya kapsayıcı olmadan grecaptcha.execute()'yi görürseniz, bu görünmez reCAPTCHA'dır.

Adım 2: CaptchaAI'ye Gönderin

import requests

response = requests.get("https://ocr.captchaai.com/in.php", params={
    "key": "YOUR_API_KEY",
    "method": "userrecaptcha",
    "googlekey": "6LdKlZEUAAAAAPoxm...",
    "pageurl": "https://example.com/signup",
    "invisible": 1,
    "json": 1
})

task_id = response.json()["request"]
const params = new URLSearchParams({
  key: "YOUR_API_KEY", method: "userrecaptcha",
  googlekey: "6LdKlZEUAAAAAPoxm...",
  pageurl: "https://example.com/signup",
  invisible: 1, json: 1,
});
const res = await fetch(`https://ocr.captchaai.com/in.php?${params}`);
const { request: taskId } = await res.json();

3. Adım: Sonuç için anket yapın

import time

for _ in range(40):
    time.sleep(5)
    result = requests.get("https://ocr.captchaai.com/res.php", params={
        "key": "YOUR_API_KEY", "action": "get", "id": task_id, "json": 1
    }).json()
    if result.get("status") == 1:
        token = result["request"]
        break
    if result.get("request") != "CAPCHA_NOT_READY":
        raise RuntimeError(f"Error: {result['request']}")

4. Adım: Belirteci geri arama yoluyla enjekte edin

Bu kritik adımdır. Görünmez reCAPTCHA, yalnızca gizli bir alan değeri değil, geri arama işlevi de bekler:

# Selenium example
from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://example.com/signup")

# Find the callback name
callback = driver.execute_script("""
    var el = document.querySelector('[data-callback]');
    if (el) return el.getAttribute('data-callback');
    var btn = document.querySelector('[data-sitekey]');
    if (btn) return btn.getAttribute('data-callback');
    return null;
""")

# Execute the callback with the token
if callback:
    driver.execute_script(f"window['{callback}']('{token}');")
else:
    # Fallback: fill hidden field and submit
    driver.execute_script(f"""
        document.getElementById('g-recaptcha-response').innerHTML = '{token}';
        document.querySelector('form').submit();
    """)
// Puppeteer example
await page.evaluate((token) => {
  const el = document.querySelector('[data-callback]') || document.querySelector('[data-sitekey]');
  const callbackName = el?.getAttribute('data-callback');

  if (callbackName && window[callbackName]) {
    window[callbackName](token);
  } else {
    document.getElementById('g-recaptcha-response').innerHTML = token;
    document.querySelector('form').submit();
  }
}, token);

Tam çalışma fonksiyonu

import requests
import time

def solve_invisible_recaptcha(api_key, sitekey, page_url):
    submit = requests.get("https://ocr.captchaai.com/in.php", params={
        "key": api_key, "method": "userrecaptcha", "googlekey": sitekey,
        "pageurl": page_url, "invisible": 1, "json": 1
    }).json()

    if submit.get("status") != 1:
        raise RuntimeError(f"Submit error: {submit.get('request')}")

    task_id = submit["request"]

    for _ in range(40):
        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.get("status") == 1:
            return result["request"]
        if result.get("request") != "CAPCHA_NOT_READY":
            raise RuntimeError(f"Solve error: {result.get('request')}")

    raise TimeoutError("Timed out")

token = solve_invisible_recaptcha("YOUR_API_KEY", "6LdKlZEU...", "https://example.com/signup")

Tam çalıştırılabilir örnek

Ortam kurulumu, yoklama, yeniden denemeler ve hata işleme ile eksiksiz bir çalışma projesine mi ihtiyacınız var?

GitHub →'deki çalıştırılabilir örneğin tamamına bakın


SSS

reCAPTCHA'nın görünmez olup olmadığını nasıl anlarım?

Widget div'inde data-size="invisible"'yi veya data-sitekey içeren bir düğmeyi arayın. Görünür bir onay kutusu yoksa muhtemelen görünmezdir.

Görünmez reCAPTCHA için görünmez=1'e ihtiyacım var mı?

Evet. Bu olmadan, CaptchaAI görevi standart v2 olarak ele alır ve belirteç reddedilebilir.

Geri arama işlevini bulamazsam ne olur?

g-recaptcha-response gizli alanını doldurmayı ve formu göndermeyi deneyin. Bazı görünmez uygulamalar bu yönteme geri dönüyor. Bu başarısız olursa, reCAPTCHA yanıtlarını işleyen işlevler için sayfa JavaScript'inde arama yapın.

Görünmez reCAPTCHA Kurumsal olabilir mi?

Evet. İsteğinize hem invisible=1 hem de enterprise=1 ekleyin.

Geri arama yürütüldükten sonra sayfa neden yanıt vermiyor?

Geri arama adı yanlış olabilir veya sayfa ek form alanları bekliyor olabilir. Geri aramanın tam adını doğrulayın ve geri arama gerçekleşmeden önce gerekli tüm form alanlarının doldurulduğundan emin olun.


Görünmez reCAPTCHA'yı çözmeye başlayın

API anahtarınızı şu adresten alın:captchaai.com/api.php. invisible=1'yi v2 çözüm kodunuza ekleyin ve yukarıdaki geri arama ekleme modelini kullanın.


İlgili kılavuzlar

Bu makale için yorumlar devre dışı bırakılmıştır.