Entegrasyonlar

cURL + CaptchaAI: CLI CAPTCHA Çözme

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.

İlgili Kılavuzlar

Bu makale için yorumlar devre dışı bırakılmıştır.