تتعامل روبوتات الأتمتة مع المهام المتكررة - عمليات إرسال النماذج، وإنشاء الحساب، وإدخال البيانات، والمراقبة. وتقاطع اختبارات 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)
شارك في النقاش
سجّل الدخول لمشاركة رأيك.
تسجيل الدخوللا توجد تعليقات بعد.