استكشاف الأخطاء

اختبار CAPTCHA يحل انخفاضات المعدل: تشخيص انحدار الأداء

انخفض معدل حل اختبار CAPTCHA من 95% إلى 60% بين عشية وضحاها. قبل الاتصال بالدعم، يستعرض هذا الدليل تشخيصًا منظمًا لتحديد السبب الجذري — سواء كان ذلك هو الكود الخاص بك، أو الوكيل، أو الموقع المستهدف، أو خدمة CaptchaAI.

شجرة القرار التشخيصي

Solve rate dropped
├── Is the API returning errors? → Check error codes
│   ├── ERROR_WRONG_USER_KEY → API key issue
│   ├── ERROR_ZERO_BALANCE → Balance depleted
│   ├── ERROR_NO_SLOT_AVAILABLE → Rate limiting
│   └── ERROR_CAPTCHA_UNSOLVABLE → CAPTCHA changed
├── Are tokens returned but rejected by the target site?
│   ├── Token expired before submission → Speed up injection
│   ├── Sitekey changed → Re-extract from page
│   └── Domain mismatch → Check pageurl parameter
├── Are proxies failing?
│   ├── Proxy banned by target → Rotate proxies
│   └── Proxy timeout → Check proxy health
└── Did the target site change?
    ├── New CAPTCHA type → Update method parameter
    ├── JavaScript changes → Re-analyze page
    └── Rate limiting by site → Reduce frequency

الخطوة 1: التحقق من رموز الخطأ CaptchaAI

قم بتشغيل برنامج نصي تشخيصي سريع:

# diagnose_solve_rate.py
import os
import requests
from collections import Counter

API_KEY = os.environ.get("CAPTCHAAI_KEY", "YOUR_API_KEY")

def check_balance():
    """Verify API key and balance."""
    resp = requests.get("https://ocr.captchaai.com/res.php", params={
        "key": API_KEY, "action": "getbalance", "json": "1",
    })
    result = resp.json()
    print(f"Balance: {result}")
    return result

def test_solve(sitekey, pageurl, runs=5):
    """Run test solves and collect error statistics."""
    errors = Counter()
    successes = 0

    for i in range(runs):
        # Submit
        resp = requests.get("https://ocr.captchaai.com/in.php", params={
            "key": API_KEY,
            "method": "userrecaptcha",
            "googlekey": sitekey,
            "pageurl": pageurl,
            "json": "1",
        })
        result = resp.json()

        if result.get("status") != 1:
            errors[result.get("request", "UNKNOWN")] += 1
            print(f"  Run {i+1}: Submit error: {result.get('request')}")
            continue

        task_id = result["request"]
        import time
        time.sleep(15)

        # Poll
        for _ in range(25):
            poll = requests.get("https://ocr.captchaai.com/res.php", params={
                "key": API_KEY, "action": "get",
                "id": task_id, "json": "1",
            })
            poll_result = poll.json()

            if poll_result.get("status") == 1:
                successes += 1
                print(f"  Run {i+1}: Solved")
                break
            if poll_result.get("request") != "CAPCHA_NOT_READY":
                errors[poll_result.get("request", "UNKNOWN")] += 1
                print(f"  Run {i+1}: Error: {poll_result.get('request')}")
                break
            time.sleep(5)
        else:
            errors["TIMEOUT"] += 1
            print(f"  Run {i+1}: Timeout")

    print(f"\nResults: {successes}/{runs} solved")
    if errors:
        print(f"Errors: {dict(errors)}")

# Run diagnostics
print("=== Balance Check ===")
check_balance()

print("\n=== Test Solves ===")
test_solve("YOUR_SITEKEY", "https://your-target-site.com", runs=5)

الخطوة 2: التحقق من معلمات الموقع المستهدف

السبب الأكثر شيوعًا لانخفاض معدل الحل هو تغيير مفتاح الموقع أو بنية الصفحة.

تحقق مما إذا كان مفتاح الموقع قد تغير

قم بزيارة الصفحة المستهدفة، وافتح DevTools (F12)، وابحث عن:

  • reCAPTCHA: استدعاء data-sitekey أو grecaptcha.render
  • Cloudflare Turnstile: data-sitekey في أداة Turnstile
  • GeeTest: معلمة gt في تهيئة GeeTest

قارن مع مفتاح الموقع في التعليمات البرمجية الخاصة بك. حرف واحد تم تغييره يسبب الفشل بمعدل نجاح عالٍ.

تحقق مما إذا كان نوع CAPTCHA قد تغير

يتم ترحيل بعض المواقع بين موفري CAPTCHA:

  • reCAPTCHA v2 → reCAPTCHA v3 (غير مرئي)
  • ريكابتشا → Cloudflare Turnstile
  • صورة CAPTCHA → reCAPTCHA المؤسسة

إذا تغير النوع، قم بتحديث معلمة method وفقًا لذلك.

الخطوة 3: تقييم صحة الوكيل

تؤثر جودة الوكيل بشكل مباشر على معدلات الحل، خاصة بالنسبة لاختبارات CAPTCHA المستندة إلى الرمز المميز حيث يستخدم CaptchaAI الوكيل الخاص بك.

مشكلة الوكيل أعراض إصلاح
الوكيل محظور بواسطة الهدف تم حل الرمز ولكن تم رفضه قم بالتدوير إلى الوكلاء السكنيين الجدد
أخطاء إرجاع الوكيل ERROR_PROXY_NOT_FOUND تحقق من أن الوكيل نشط ويمكن الوصول إليه
تم اكتشاف وكيل مركز البيانات انخفاض معدلات الحل التبديل إلى الوكلاء السكنية
عدم تطابق الموقع الجغرافي للوكيل نتائج غير متناسقة قم بمطابقة بلد الوكيل بالموقع المستهدف

قم بإجراء الاختبار بدون وكيل أولاً (إذا كان نوع CAPTCHA يدعم الحل بدون وكيل) لعزل ما إذا كان الوكيل هو المشكلة أم لا.

الخطوة 4: التحقق من توقيت الرمز المميز

رموز CAPTCHA لها صلاحية محدودة:

نوع التحقق عمر الرمز المميز
reCAPTCHA v2 ~120 ثانية
reCAPTCHA v3 ~120 ثانية
Cloudflare Turnstile ~300 ثانية
GeeTest v3 ~60 ثانية

إذا استغرق المسار الخاص بك وقتًا طويلاً بين استلام الرمز المميز وإدخاله في النموذج، فستنتهي صلاحية الرمز المميز ويرفضه الموقع.

الإصلاح: قياس الوقت بين getTaskResult وإرسال النموذج. إذا كان > 60 ثانية، قم بتحسين خط الأنابيب الخاص بك.

الخطوة 5: تحليل توزيع الأخطاء

قم بفرز أخطائك حسب التكرار للعثور على السبب الجذري:

خطأ معنى العمل
ERROR_CAPTCHA_UNSOLVABLE اختبار CAPTCHA معقد جدًا أو تم تغييره تقرير إلى CaptchaAI؛ تحقق مما إذا كان مفتاح الموقع صحيحًا
ERROR_WRONG_CAPTCHA_ID الاستقصاء معرف مهمة خاطئة إصلاح تتبع معرف المهمة في التعليمات البرمجية الخاصة بك
ERROR_ZERO_BALANCE نفاد الاعتمادات تعبئة الرصيد
ERROR_NO_SLOT_AVAILABLE معدل محدود تقليل التزامن أو إضافة تأخير
CAPCHA_NOT_READY (مهلة) حل يستغرق وقتا طويلا زيادة مهلة الاستطلاع. تحقق مما إذا كان مفتاح الموقع صالحًا

الخطوة 6: المقارنة مع خط الأساس

إذا قمت بتشغيل مقاييس الأداء سابقًا، فقم بمقارنة المقاييس الحالية مع خط الأساس الخاص بك:

متري خط الأساس الحالي دلتا قلق؟
حل المعدل 95% ؟ > انخفاض بنسبة 5% = التحقيق
متوسط وقت الحل 15 ثانية ؟ > زيادة 50% = تحقيق
معدل الخطأ 2% ؟ > 5% = التحقيق
معدل قبول الرمز المميز 98% ؟ > انخفاض بنسبة 3% = تغير الموقع

متى يجب الاتصال بالدعم

اتصل بدعم CaptchaAI إذا:

  • تم اجتياز كافة الخطوات التشخيصية ولكن معدل الحل ظل منخفضًا
  • يتجاوز معدل ERROR_CAPTCHA_UNSOLVABLE 20% على مفاتيح المواقع التي كانت تعمل سابقًا
  • يظهر الرصيد صحيحًا ولكن الحلول لا تزال تفشل
  • استمرت المشكلة لأكثر من ساعتين

تضمين في تقريرك:

  1. نوع CAPTCHA ومفتاح الموقع
  2. عنوان URL للموقع المستهدف
  3. توزيع الأخطاء (من البرنامج النصي التشخيصي)
  4. عندما بدأت المشكلة
  5. أي تغييرات قمت بها على التعليمات البرمجية الخاصة بك

استكشاف أخطاء المرجع السريع وإصلاحها

| السيناريو | السبب الأكثر احتمالا | الإجراء الأول |


الخطوات التالية

أدلة ذات صلة

التعليقات غير مفعّلة لهذا المقال.