SDK не требуется. Решайте CAPTCHA прямо со своего терминала с помощью cURL и REST API CaptchaAI. Идеально подходит для быстрого тестирования, конвейеров CI/CD и сценариев оболочки.
Требования
| Требование | Подробности |
|---|---|
| КУЛЬ | Любая современная версия |
| jq (необязательно) | Для разбора ответов |
| 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.
Скрипт решателя Bash
Создайте 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"
Решите капчу изображения
# 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://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}"
Пакетная обработка
Решите несколько 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
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"
}
Поиск неисправностей
| Ошибка | Причина | Исправить |
|---|---|---|
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 не увеличивает задержку по сравнению с HTTP-клиентами Python или Node.js. Время решения CAPTCHA доминирует.
Как обрабатывать специальные символы в URL-адресах?
Параметры URL-кодирования: используйте --data-urlencode с cURL POST или curl -G --data-urlencode "pageurl=...".
Связанные руководства
- Axios + CaptchaAI (без браузера)
- Настройка ключа API и аутентификация
- Форматы ответов API