SDK'ya gerek yok. CAPTCHA'ları cURL ve CaptchaAI REST API ile doğrudan terminalinizden çözün. Hızlı test, CI/CD ardışık düzenleri ve kabuk komut dosyaları için mükemmeldir.
Gereksinimler
| Gereksinim | Ayrıntılar |
|---|---|
| kıvrılma | Herhangi bir modern versiyon |
| jq (isteğe bağlı) | Yanıtların ayrıştırılması için |
| CaptchaAI API anahtarı | Buradan bir tane alın |
Temel Komutlar
Bakiyeyi Kontrol Et
curl -s "https://ocr.captchaai.com/res.php?key=YOUR_API_KEY&action=getbalance"
Çıktı: 1.234
reCAPTCHA v2'yi Gönder
curl -s "https://ocr.captchaai.com/in.php?key=YOUR_API_KEY&method=userrecaptcha&googlekey=6Le-wvkS...&pageurl=https://example.com"
Çıktı: OK|73548291
Sonuç için Anket
curl -s "https://ocr.captchaai.com/res.php?key=YOUR_API_KEY&action=get&id=73548291"
Çıkış: OK|03AGdBq24PBCbw... veya CAPCHA_NOT_READY
Bash Çözücü Komut Dosyası
solve_captcha.sh'yi oluşturun:
#!/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
Çalıştırılabilir hale getirin:
chmod +x solve_captcha.sh
Çalıştır:
export CAPTCHAAI_API_KEY="your_key_here"
./solve_captcha.sh "6Le-wvkS..." "https://example.com"
Cloudflare Turnstile'yi çözün
curl -s "https://ocr.captchaai.com/in.php?key=${CAPTCHAAI_API_KEY}&method=turnstile&sitekey=0x4AAAAA...&pageurl=https://example.com"
Resim CAPTCHA'sını Çöz
# 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}"
Büyük resimler için POST'u kullanın:
curl -s -X POST "https://ocr.captchaai.com/in.php" \
-F "key=${CAPTCHAAI_API_KEY}" \
-F "method=post" \
-F "file=@captcha.png"
Token'ı Tek Bir İşlem Hattında Çözün ve Kullanın
#!/bin/bash
# Solve CAPTCHA and submit form in one pipeline
API_KEY="${CAPTCHAAI_API_KEY}"
SITE_KEY="6Le-wvkS..."
TARGET_URL="https://staging.example.com/qa-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}"
Toplu İşleme
Bir dosyadan birden fazla CAPTCHA çözün:
#!/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
PowerShell (Windows)
$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"
}
Sorun giderme
| Hata | Sebep | Düzeltme |
|---|---|---|
curl: (6) Could not resolve host |
DNS sorunu | Ağı kontrol et |
ERROR_WRONG_USER_KEY |
Kötü API anahtarı | Anahtardaki/newlines boşluklarını kontrol edin |
| Yanıt boş | Ağ zaman aşımı | --connect-timeout 30'yi ekleyin |
base64: invalid input |
İkili dosya sorunu | base64 -w 0 kullanın (sarmalama yok) |
SSS
Bunu CI/CD işlem hatlarında kullanabilir miyim?
Evet. CAPTCHAAI_API_KEY'yi CI sırrı olarak ayarlayın ve işlem hattınızdaki betiği çağırın. GitHub Actions, GitLab CI, Jenkins vb. ile çalışır.
cURL, SDK kullanmaktan daha mı yavaş?
HTTP ek yükü aynıdır. cURL, Python veya Node.js HTTP istemcileriyle karşılaştırıldığında hiçbir gecikme eklemez. CAPTCHA çözüm süresi hakimdir.
URL'lerdeki özel karakterleri nasıl kullanırım?
URL kodlama parametreleri: --data-urlencode'yi cURL POST veya curl -G --data-urlencode "pageurl=..." ile kullanın.