لا حاجة إلى SDK. قم بحل اختبارات CAPTCHA مباشرة من جهازك الطرفي باستخدام cURL وCaptchaAI REST API. مثالية للاختبار السريع، وخطوط أنابيب CI/CD، والنصوص البرمجية للصدفة.
المتطلبات
| المتطلبات | التفاصيل |
|---|---|
| cURL | أي نسخة حديثة |
| جي كيو (اختياري) | لتحليل الردود |
| مفتاح CaptchaAI API | احصل على واحدة هنا |
الأوامر الأساسية
التحقق من الرصيد
curl -s "https://ocr.captchaai.com/res.php?key=YOUR_API_KEY&action=getbalance"
الإخراج: 1.234
إرسال reCAPTCHA v2
curl -s "https://ocr.captchaai.com/in.php?key=YOUR_API_KEY&method=userrecaptcha&googlekey=6Le-wvkS...&pageurl=https://example.com"
الإخراج: OK|73548291
استطلاع للنتيجة
curl -s "https://ocr.captchaai.com/res.php?key=YOUR_API_KEY&action=get&id=73548291"
الإخراج: OK|03AGdBq24PBCbw... أو CAPCHA_NOT_READY
باش النصي
إنشاء solve_captcha.sh:
#!/bin/bash
set -euo pipefail
API_KEY="${CAPTCHAAI_API_KEY:?Set CAPTCHAAI_API_KEY environment variable}"
BASE_URL="https://ocr.captchaai.com"
solve_recaptcha() {
local site_key="$1"
local page_url="$2"
local timeout="${3:-300}"
# Submit
local response
response=$(curl -s "${BASE_URL}/in.php?key=${API_KEY}&method=userrecaptcha&googlekey=${site_key}&pageurl=${page_url}")
if [[ ! "$response" == OK|* ]]; then
echo "ERROR: Submit failed: $response" >&2
return 1
fi
local task_id="${response#OK|}"
echo "Submitted task: $task_id" >&2
# Poll
local deadline=$((SECONDS + timeout))
while (( SECONDS < deadline )); do
sleep 5
local result
result=$(curl -s "${BASE_URL}/res.php?key=${API_KEY}&action=get&id=${task_id}")
if [[ "$result" == "CAPCHA_NOT_READY" ]]; then
echo "Waiting..." >&2
continue
fi
if [[ "$result" == OK|* ]]; then
echo "${result#OK|}"
return 0
fi
echo "ERROR: Solve failed: $result" >&2
return 1
done
echo "ERROR: Timeout after ${timeout}s" >&2
return 1
}
# Usage: ./solve_captcha.sh SITE_KEY PAGE_URL
if [[ $# -ge 2 ]]; then
solve_recaptcha "$1" "$2"
fi
اجعله قابلاً للتنفيذ:
chmod +x solve_captcha.sh
تشغيل:
export CAPTCHAAI_API_KEY="your_key_here"
./solve_captcha.sh "6Le-wvkS..." "https://example.com"
حل Cloudflare Turnstile
curl -s "https://ocr.captchaai.com/in.php?key=${CAPTCHAAI_API_KEY}&method=turnstile&sitekey=0x4AAAAA...&pageurl=https://example.com"
حل صورة CAPTCHA
# Encode image to base64
IMAGE_B64=$(base64 -w 0 captcha.png)
# Submit
curl -s "https://ocr.captchaai.com/in.php?key=${CAPTCHAAI_API_KEY}&method=base64&body=${IMAGE_B64}"
للصور الكبيرة، استخدم POST:
curl -s -X POST "https://ocr.captchaai.com/in.php" \
-F "key=${CAPTCHAAI_API_KEY}" \
-F "method=post" \
-F "file=@captcha.png"
حل واستخدام الرمز المميز في خط أنابيب واحد
#!/bin/bash
# Solve CAPTCHA and submit form in one pipeline
API_KEY="${CAPTCHAAI_API_KEY}"
SITE_KEY="6Le-wvkS..."
TARGET_URL="https://example.com/login"
# Solve
TOKEN=$(./solve_captcha.sh "$SITE_KEY" "$TARGET_URL")
if [[ -z "$TOKEN" ]]; then
echo "Failed to solve CAPTCHA"
exit 1
fi
# Submit form with token
curl -s -X POST "$TARGET_URL" \
-d "username=user" \
-d "password=pass" \
-d "g-recaptcha-response=${TOKEN}"
معالجة الدفعات
حل اختبارات CAPTCHA المتعددة من ملف:
#!/bin/bash
# Input file: urls.txt (one URL per line)
while IFS= read -r url; do
echo "Processing: $url"
TOKEN=$(./solve_captcha.sh "6Le-wvkS..." "$url")
if [[ -n "$TOKEN" ]]; then
echo "$url,$TOKEN" >> results.csv
echo " Solved ✓"
else
echo " Failed ✗"
fi
done < urls.txt
بوويرشيل (ويندوز)
$ApiKey = $env:CAPTCHAAI_API_KEY
$BaseUrl = "https://ocr.captchaai.com"
# Submit
$response = Invoke-RestMethod "${BaseUrl}/in.php?key=${ApiKey}&method=userrecaptcha&googlekey=6Le-wvkS...&pageurl=https://example.com"
if ($response -match '^OK\|(.+)$') {
$taskId = $Matches[1]
Write-Host "Task: $taskId"
} else {
Write-Error "Submit failed: $response"
exit 1
}
# Poll
do {
Start-Sleep -Seconds 5
$result = Invoke-RestMethod "${BaseUrl}/res.php?key=${ApiKey}&action=get&id=${taskId}"
} while ($result -eq 'CAPCHA_NOT_READY')
if ($result -match '^OK\|(.+)$') {
$token = $Matches[1]
Write-Host "Token: $token"
} else {
Write-Error "Solve failed: $result"
}
استكشاف الأخطاء وإصلاحها
| خطأ | السبب | إصلاح |
|---|---|---|
curl: (6) Could not resolve host |
مشكلة DNS | تحقق من الشبكة |
ERROR_WRONG_USER_KEY |
مفتاح API غير صالح | تحقق من وجود مسافات/newlines في المفتاح |
| الرد فارغ | مهلة الشبكة | إضافة --connect-timeout 30 |
base64: invalid input |
مشكلة الملف الثنائي | استخدم base64 -w 0 (بدون تغليف) |
الأسئلة الشائعة
هل يمكنني استخدام هذا في خطوط أنابيب CI/CD؟
نعم. قم بتعيين CAPTCHAAI_API_KEY باعتباره سر CI، واستدعاء البرنامج النصي في المسار الخاص بك. يعمل مع GitHub Actions وGitLab CI وJenkins وما إلى ذلك.
هل cURL أبطأ من استخدام SDK؟
الحمل HTTP متطابق. لا يضيف cURL أي زمن انتقال مقارنة بعملاء Python أو Node.js HTTP. يهيمن وقت حل اختبار CAPTCHA.
كيف أتعامل مع الأحرف الخاصة في عناوين URL؟
معلمات ترميز URL: استخدم --data-urlencode مع cURL POST أو curl -G --data-urlencode "pageurl=...".