Çözüm oranınız düştüğünde tahminde bulunmayın; temel nedeni bulmak ve düzeltmek için bu sistematik tanıyı takip edin.
Tanı Akış Şeması
Success rate dropped
│
├── Are tokens being generated?
│ ├── NO → Check API errors
│ │ ├── ERROR_WRONG_GOOGLEKEY → Sitekey changed. Re-extract.
│ │ ├── ERROR_BAD_PARAMETERS → Check required params
│ │ ├── ERROR_NO_SLOT → Retry with backoff
│ │ └── Other errors → See error decision tree
│ │
│ └── YES → Tokens generated but rejected by target site
│ │
│ ├── Token expired before use?
│ │ └── YES → Submit token faster (< 60-120s)
│ │
│ ├── Token used for wrong domain?
│ │ └── YES → Check pageurl matches submission domain
│ │
│ ├── reCAPTCHA v3 score too low?
│ │ └── YES → Check action parameter, try min_score
│ │
│ ├── Site changed CAPTCHA type?
│ │ └── YES → Re-detect CAPTCHA type
│ │
│ └── Site added additional checks?
│ └── YES → Check for fingerprinting, cookies, headers
1. Adım: Mevcut Hızınızı Ölçün
import requests
import time
from collections import defaultdict
class SuccessTracker:
"""Track solve success rates over time."""
def __init__(self):
self.stats = defaultdict(lambda: {"attempts": 0, "success": 0, "errors": defaultdict(int)})
def record(self, method, success, error_code=None):
self.stats[method]["attempts"] += 1
if success:
self.stats[method]["success"] += 1
elif error_code:
self.stats[method]["errors"][error_code] += 1
def report(self):
for method, data in self.stats.items():
rate = data["success"] / data["attempts"] * 100 if data["attempts"] > 0 else 0
print(f"\n{method}:")
print(f" Attempts: {data['attempts']}")
print(f" Success: {data['success']} ({rate:.1f}%)")
if data["errors"]:
print(" Errors:")
for err, count in sorted(data["errors"].items(), key=lambda x: -x[1]):
print(f" {err}: {count}")
tracker = SuccessTracker()
Adım 2: Sorun Kategorisini Belirleyin
Kategori A: API Düzeyinde Hatalar
CaptchaAI API'si belirteç yerine hata döndürüyor.
def diagnose_api_failures(api_key, method, params, attempts=10):
"""Run test solves and collect error patterns."""
errors = defaultdict(int)
successes = 0
for i in range(attempts):
try:
resp = requests.post("https://ocr.captchaai.com/in.php", data={
"key": api_key, "method": method, "json": 1, **params,
}, timeout=30)
result = resp.json()
if result.get("status") != 1:
errors[result.get("request", "UNKNOWN")] += 1
continue
task_id = result["request"]
# Quick poll
time.sleep(15)
resp = requests.get("https://ocr.captchaai.com/res.php", params={
"key": api_key, "action": "get",
"id": task_id, "json": 1,
}, timeout=15)
data = resp.json()
if data.get("status") == 1:
successes += 1
else:
errors[data.get("request", "POLL_ERROR")] += 1
except Exception as e:
errors[f"EXCEPTION:{type(e).__name__}"] += 1
time.sleep(2)
print(f"\nResults: {successes}/{attempts} success")
for err, count in sorted(errors.items(), key=lambda x: -x[1]):
print(f" {err}: {count}")
Kategori B: Token Reddi
CaptchaAI geçerli bir belirteç döndürür, ancak hedef site bunu reddeder.
Genel nedenler:
| Sebep | Kontrol et |
|---|---|
| Jetonun süresi doldu | Oluşturulduktan sonra > 120 saniye boyunca jetonun kullanılması |
| Alan adı uyuşmazlığı | pageurl gönderim alanıyla eşleşmiyor |
| v3 puanı çok düşük | Site 0,7+ gerektirir ancak çözücü 0,3 alır |
| İşlem eksik | v3, eşleşen eylem parametresini gerektirir |
| Sitenin parametreleri değiştirildi | Site anahtarı veya sayfa yapısı değişti |
3. Adım: Yaygın Sorunları Düzeltin
Düzeltme: Token Sona Ermesi
def solve_and_use_immediately(api_key, sitekey, pageurl):
"""Solve and use token as fast as possible."""
# Submit
resp = requests.post("https://ocr.captchaai.com/in.php", data={
"key": api_key,
"method": "userrecaptcha",
"googlekey": sitekey,
"pageurl": pageurl,
"json": 1,
}, timeout=30)
task_id = resp.json()["request"]
# Poll aggressively
for _ in range(24):
time.sleep(5)
resp = requests.get("https://ocr.captchaai.com/res.php", params={
"key": api_key, "action": "get",
"id": task_id, "json": 1,
}, timeout=15)
data = resp.json()
if data.get("status") == 1:
token = data["request"]
# USE IMMEDIATELY — don't store for later
submit_form(token)
return True
return False
Düzeltme: Eski Site Anahtarı
def solve_with_fresh_params(api_key, pageurl):
"""Re-extract sitekey before each solve."""
import re
resp = requests.get(pageurl, timeout=15)
match = re.search(r'data-sitekey="([^"]+)"', resp.text)
if not match:
raise RuntimeError("Could not find sitekey")
sitekey = match.group(1)
# Now solve with fresh sitekey
# ...
Düzeltme: v3 Eylem Parametresi
# Check what action the site uses
# Look for: grecaptcha.execute('sitekey', {action: 'submit'})
data = {
"key": api_key,
"method": "userrecaptcha",
"googlekey": sitekey,
"pageurl": pageurl,
"version": "v3",
"action": "submit", # Must match site's action
"min_score": "0.7",
"json": 1,
}
Beklenen Başarı Oranları
| CAPTCHA Türü | Normal Oran | Uyarı Eşiği |
|---|---|---|
| reCAPTCHA v2 | %95-99 | %90'ın altında |
| reCAPTCHA v3 | %90-98 | %85'in altında |
| Cloudflare Turnstile | %99-100 | %95'in altında |
| GeeTest v3 | %99-100 | %95'in altında |
| BLS | %99-100 | %95'in altında |
| Resim/OCR | %90-98 | %85'in altında |
Sorun giderme
| Sorun | Sebep | Düzeltme |
|---|---|---|
| Oran %98'den %70'e düştü | Site anahtarı veya sayfa değiştirildi | Tüm parametreleri yeniden çıkarın |
| v3 belirteçlerinin tümü reddedildi | Yanlış eylem parametresi | İşlemi sayfa kaynağından eşleştir |
| Jetonlar çalışır ancak geçerliliği sona erer | Kullanımı çok yavaş | Tokenı 60 saniye içinde gönderin |
| Oran günün saatine göre değişir | Sunucu tarafı hız sınırlaması | Gönderimler arasına gecikmeler ekleyin |
SSS
Normal başarı oranı nedir?
Çoğu CAPTCHA türü için %95+. Sürekli olarak %90'ın altındaysanız muhtemelen bir parametre veya zamanlama sorunu vardır.
Jetonları ne kadar hızlı kullanmam gerekiyor?
reCAPTCHA belirteçlerinin süresi 120 saniye içinde dolar. Turnstile jetonları 300 saniye içinde. En iyi sonuçları elde etmek için jetonları 60 saniye içinde kullanın.
Yanlış çözümleri bildirmeli miyim?
Evet. Yanlış çözümleri bildirmek için reportbad uç noktasını kullanın. CaptchaAI bu geri bildirimi doğruluğu artırmak için kullanır.
İlgili Kılavuzlar
Hızlı teşhis edin, daha iyi çözün —CaptchaAI'yi kullanın.