Use Cases

التعامل مع CAPTCHA داخل روبوتات الأتمتة باستخدام CaptchaAI

تتعامل روبوتات الأتمتة مع المهام المتكررة - عمليات إرسال النماذج، وإنشاء الحساب، وإدخال البيانات، والمراقبة. وتقاطع اختبارات CAPTCHA سير العمل هذه. ويحل CaptchaAI اختبارات CAPTCHA برمجيًا حتى تعمل برامج الروبوت الخاصة بك دون تدخل بشري.

سيناريوهات الأتمتة المشتركة

السيناريو اختبار CAPTCHA النموذجي طريقة CaptchaAI
تقديم النموذج reCAPTCHA v2 method=userrecaptcha
تسجيل الحساب reCAPTCHA v2/v3 method=userrecaptcha
بوابات إدخال البيانات صورة التحقق method=base64
الحجز أو أنظمة المواعيد Cloudflare Turnstile method=turnstile
الوصول إلى بوابة API Cloudflare Challenge method=cloudflare_challenge

إطار عمل بوت عام

أنشئ إطار عمل روبوت لحل اختبار CAPTCHA قابل لإعادة الاستخدام:

import requests
import time
import logging

logger = logging.getLogger(__name__)

class CaptchaBot:
    def __init__(self, api_key):
        self.api_key = api_key
        self.session = requests.Session()
        self.session.headers.update({
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
        })

    def solve(self, method, **params):
        """Solve any CAPTCHA type."""
        params["key"] = self.api_key
        params["method"] = method

        resp = requests.get("https://ocr.captchaai.com/in.php", params=params)
        if not resp.text.startswith("OK|"):
            raise Exception(f"Submit error: {resp.text}")

        task_id = resp.text.split("|")[1]
        logger.info(f"Task submitted: {task_id}")

        for _ in range(60):
            time.sleep(5)
            result = requests.get("https://ocr.captchaai.com/res.php", params={
                "key": self.api_key, "action": "get", "id": task_id
            })
            if result.text == "CAPCHA_NOT_READY": continue
            if result.text.startswith("OK|"): return result.text.split("|")[1]
            raise Exception(f"Error: {result.text}")

        raise TimeoutError("CAPTCHA solve timed out")

    def submit_form(self, url, form_data, captcha_field="g-recaptcha-response",
                    site_key=None, captcha_method="userrecaptcha"):
        """Submit a form with CAPTCHA solving."""
        if site_key:
            if captcha_method == "userrecaptcha":
                token = self.solve(captcha_method, googlekey=site_key, pageurl=url)
            elif captcha_method == "turnstile":
                token = self.solve(captcha_method, sitekey=site_key, pageurl=url)
            form_data[captcha_field] = token

        return self.session.post(url, data=form_data)

مثال: بوت إرسال النموذج

bot = CaptchaBot("YOUR_API_KEY")

# Submit a contact form protected by reCAPTCHA
result = bot.submit_form(
    url="https://example.com/contact",
    form_data={
        "name": "John Doe",
        "email": "john@example.com",
        "message": "Inquiry about your service"
    },
    site_key="6Le-wvkS...",
    captcha_method="userrecaptcha"
)

print(f"Form submitted: {result.status_code}")

مثال: روبوت سير العمل متعدد الخطوات

def appointment_booking_bot(date, time_slot, user_info):
    bot = CaptchaBot("YOUR_API_KEY")

    # Step 1: Load booking page
    page = bot.session.get("https://example.com/book")

    # Step 2: Select date and time
    resp = bot.session.post("https://example.com/book/select", data={
        "date": date,
        "time": time_slot
    })

    # Step 3: Fill personal info with CAPTCHA
    result = bot.submit_form(
        url="https://example.com/book/confirm",
        form_data={
            "name": user_info["name"],
            "email": user_info["email"],
            "phone": user_info["phone"],
            "date": date,
            "time": time_slot
        },
        site_key="6Le-wvkS...",
        captcha_method="userrecaptcha"
    )

    return result.status_code == 200

# Run
success = appointment_booking_bot(
    date="2025-02-15",
    time_slot="10:00",
    user_info={"name": "John Doe", "email": "john@example.com", "phone": "555-0100"}
)

مثال: روبوت إدخال البيانات مع صورة CAPTCHA

import base64

def data_entry_bot(entries, captcha_image_url):
    bot = CaptchaBot("YOUR_API_KEY")

    for entry in entries:
        # Load the form page
        page = bot.session.get("https://portal.example.com/entry")

        # Download and solve image CAPTCHA
        img = bot.session.get(captcha_image_url)
        img_b64 = base64.b64encode(img.content).decode()
        captcha_text = bot.solve("base64", body=img_b64)

        # Submit entry
        resp = bot.session.post("https://portal.example.com/entry", data={
            **entry,
            "captcha": captcha_text
        })

        logger.info(f"Entry submitted: {resp.status_code}")
        time.sleep(random.uniform(2, 5))

إطار عمل بوت Node.js

const axios = require("axios");

class CaptchaBot {
  constructor(apiKey) {
    this.apiKey = apiKey;
  }

  async solve(method, params) {
    params.key = this.apiKey;
    params.method = method;

    const submit = await axios.get("https://ocr.captchaai.com/in.php", {
      params,
    });
    const taskId = submit.data.split("|")[1];

    while (true) {
      await new Promise((r) => setTimeout(r, 5000));
      const result = await axios.get("https://ocr.captchaai.com/res.php", {
        params: { key: this.apiKey, action: "get", id: taskId },
      });
      if (result.data === "CAPCHA_NOT_READY") continue;
      if (result.data.startsWith("OK|")) return result.data.split("|")[1];
      throw new Error(result.data);
    }
  }

  async submitForm(url, formData, siteKey, method = "userrecaptcha") {
    const token = await this.solve(method, {
      googlekey: siteKey,
      pageurl: url,
    });
    formData["g-recaptcha-response"] = token;

    return axios.post(url, new URLSearchParams(formData));
  }
}

// Usage
const bot = new CaptchaBot("YOUR_API_KEY");
const result = await bot.submitForm(
  "https://example.com/submit",
  { name: "John", email: "john@example.com" },
  "6Le-wvkS..."
);

استكشاف الأخطاء وإصلاحها

المشكلة السبب الإجراء
تم رفض رمز CAPTCHA انتهت صلاحية الرمز قبل الإرسال استخدم الرمز خلال 120 ثانية من الحل
كشف النظام للروبوت بصمة المتصفح أو طبيعة الطلبات أضف رؤوس HTTP مناسبة وتأخيرات بين الطلبات
يتطلب النموذج حقولاً إضافية وجود حقول مخفية مثل رمز CSRF افحص مصدر النموذج وأدرج جميع الحقول المخفية
قيد معدل الطلبات عدد كبير من الطلبات من نفس العنوان أضف تأخيرات عشوائية ودوّر البروكسيات

الأسئلة الشائعة

هل يمكن لروبوتات الأتمتة التعامل مع أي نوع من أنواع CAPTCHA؟

مع CaptchaAI، نعم. تدعم واجهة برمجة التطبيقات reCAPTCHA (جميع الإصدارات)، وCloudflare Turnstile، وGeeTest، وhCaptcha، وimage CAPTCHAs، والمزيد. يحتاج إطار عمل الروبوت الخاص بك فقط إلى اكتشاف النوع واستدعاء الطريقة الصحيحة.

كيف يمكنني تشغيل الروبوتات 24/7؟

استخدم أدوات الجدولة (cron، وWindows Task Scheduler، وsystemd) أو انشر عبر الخدمات السحابية. تتوفر واجهة برمجة التطبيقات CaptchaAI على 24/7 مع وقت تشغيل بنسبة 99.9%+.

ماذا عن الروبوتات التي تحتاج إلى التعامل مع برامج مكافحة الروبوتات بما يتجاوز اختبارات CAPTCHA؟

ادمج CaptchaAI مع المتصفحات الخفية (محرك الكروم الذي لم يتم اكتشافه، Puppeteer Extra). يعالج CaptchaAI طبقة CAPTCHA؛ أدوات التخفي تتعامل مع اكتشاف بصمات الأصابع.

أدلة ذات صلة

النقاشات (0)

لا توجد تعليقات بعد.

مقالات ذات صلة

Comparisons اكتشاف الروبوتات مقابل تجريف اختبار CAPTCHA
مقارنة عملية حول اكتشاف الروبوتات مقابل تجريف اختبار CAPTCHA تركّز على الفروق في التكلفة والدقة وزمن الاستجابة وسهولة الدمج، مع التأكيد على أن الحكم النهائي يجب...

مقارنة عملية حول اكتشاف الروبوتات مقابل تجريف اختبار CAPTCHA تركّز على الفروق في التكلفة والدقة وزمن الاستجابة...

Apr 25, 2026
API Tutorials Bash + cURL + CaptchaAI: أتمتة CAPTCHA من سطر الأوامر
شرح خطوة بخطوة لـ Bash + c URL + Captcha AI: أتمتة CAPTCHA من سطر الأوامر مع أمثلة مباشرة قابلة لإعادة الاستخدام ومسار واضح لتطبيقه باستخدام Captcha AI.

شرح خطوة بخطوة لـ Bash + c URL + Captcha AI: أتمتة CAPTCHA من سطر الأوامر مع أمثلة مباشرة قابلة لإعادة الاستخد...

Apr 21, 2026
Getting Started فهم تنسيقات الاستجابة في CaptchaAI API
دليل بدء سريع لـ فهم تنسيقات الاستجابة في Captcha AI API يشرح المتطلبات الأساسية، وأول الطلبات، والمسار الأبسط للوصول إلى تكامل صحيح مع Captcha AI.

دليل بدء سريع لـ فهم تنسيقات الاستجابة في Captcha AI API يشرح المتطلبات الأساسية، وأول الطلبات، والمسار الأبسط...

Apr 18, 2026