Referans

AZCaptcha'dan CaptchaAI'ye Geçiş: Tam Kılavuz

AZCaptcha ve CaptchaAI'nin her ikisi de 2Captcha uyumlu bir API formatı kullanıyor ve bu da geçişi kolaylaştırıyor. Çoğunlukla temel URL'yi ve API anahtarını değiştireceksiniz; istek biçimi aynı kalacak.

Uç Nokta Eşlemesi

Eylem AZCaptcha CaptchaAI
Görevi gönder https://azcaptcha.com/in.php https://ocr.captchaai.com/in.php
Sonuç al https://azcaptcha.com/res.php https://ocr.captchaai.com/res.php
Bakiyeyi kontrol et res.php?action=getbalance res.php?action=getbalance
Yanlış bildir res.php?action=reportbad res.php?action=reportbad

Parametre Uyumluluğu

Çoğu parametre aynıdır. Temel farklar:

Parametre AZCaptcha CaptchaAI Notlar
key API anahtarı API anahtarı Farklı anahtar — sizinkini captchaai.com adresinden alın
method userrecaptcha userrecaptcha Aynı
googlekey Site anahtarı Site anahtarı Aynı
pageurl Sayfa URL'si Sayfa URL'si Aynı
json 1 1 Aynı
proxy user:pass@host:port user:pass@host:port Aynı format
proxytype HTTP/SOCKS5 HTTP/SOCKS5 Aynı

Geçiş Adımları

1. Adım: CaptchaAI API Anahtarını Alın

  1. Kayıt olcaptchaai.com
  2. Hesabınıza para ekleyin
  3. API anahtarınızı kontrol panelinden kopyalayın

2. Adım: Kodunuzu Güncelleyin

Python — Önce (AZCaptcha)

import requests

API_KEY = "your_azcaptcha_key"

def solve_recaptcha(sitekey, pageurl):
    # Submit
    resp = requests.post("https://azcaptcha.com/in.php", data={
        "key": API_KEY,
        "method": "userrecaptcha",
        "googlekey": sitekey,
        "pageurl": pageurl,
        "json": 1
    })
    data = resp.json()
    if data["status"] != 1:
        return {"error": data["request"]}

    captcha_id = data["request"]

    # Poll
    import time
    for _ in range(60):
        time.sleep(5)
        result = requests.get("https://azcaptcha.com/res.php", params={
            "key": API_KEY, "action": "get", "id": captcha_id, "json": 1
        }).json()
        if result["status"] == 1:
            return {"solution": result["request"]}
        if result["request"] != "CAPCHA_NOT_READY":
            return {"error": result["request"]}

    return {"error": "TIMEOUT"}

Python — Sonra (CaptchaAI)

import os
import time
import requests

API_KEY = os.environ["CAPTCHAAI_API_KEY"]  # Changed: use env var

def solve_recaptcha(sitekey, pageurl):
    # Submit — only URL changed
    resp = requests.post("https://ocr.captchaai.com/in.php", data={
        "key": API_KEY,
        "method": "userrecaptcha",
        "googlekey": sitekey,
        "pageurl": pageurl,
        "json": 1
    })
    data = resp.json()
    if data.get("status") != 1:
        return {"error": data.get("request")}

    captcha_id = data["request"]

    # Poll — only URL changed
    for _ in range(60):
        time.sleep(5)
        result = requests.get("https://ocr.captchaai.com/res.php", params={
            "key": API_KEY, "action": "get", "id": captcha_id, "json": 1
        }).json()
        if result.get("status") == 1:
            return {"solution": result["request"]}
        if result.get("request") != "CAPCHA_NOT_READY":
            return {"error": result.get("request")}

    return {"error": "TIMEOUT"}

JavaScript — Önce (AZCaptcha)

const axios = require("axios");
const API_KEY = "your_azcaptcha_key";

async function solveRecaptcha(sitekey, pageurl) {
  const submit = await axios.post("https://azcaptcha.com/in.php", null, {
    params: { key: API_KEY, method: "userrecaptcha", googlekey: sitekey, pageurl, json: 1 },
  });
  if (submit.data.status !== 1) return { error: submit.data.request };

  const captchaId = submit.data.request;
  for (let i = 0; i < 60; i++) {
    await new Promise((r) => setTimeout(r, 5000));
    const poll = await axios.get("https://azcaptcha.com/res.php", {
      params: { key: API_KEY, action: "get", id: captchaId, json: 1 },
    });
    if (poll.data.status === 1) return { solution: poll.data.request };
    if (poll.data.request !== "CAPCHA_NOT_READY") return { error: poll.data.request };
  }
  return { error: "TIMEOUT" };
}

JavaScript — Sonra (CaptchaAI)

const axios = require("axios");
const API_KEY = process.env.CAPTCHAAI_API_KEY;  // Changed: env var

async function solveRecaptcha(sitekey, pageurl) {
  // Only URLs changed
  const submit = await axios.post("https://ocr.captchaai.com/in.php", null, {
    params: { key: API_KEY, method: "userrecaptcha", googlekey: sitekey, pageurl, json: 1 },
  });
  if (submit.data.status !== 1) return { error: submit.data.request };

  const captchaId = submit.data.request;
  for (let i = 0; i < 60; i++) {
    await new Promise((r) => setTimeout(r, 5000));
    const poll = await axios.get("https://ocr.captchaai.com/res.php", {
      params: { key: API_KEY, action: "get", id: captchaId, json: 1 },
    });
    if (poll.data.status === 1) return { solution: poll.data.request };
    if (poll.data.request !== "CAPCHA_NOT_READY") return { error: poll.data.request };
  }
  return { error: "TIMEOUT" };
}

Adım 3: Sağlayıcıyı Özetleyin

Daha güvenli geçiş için sağlayıcıdan bağımsız bir sarmalayıcı oluşturun:

import os
import time
import requests


class CaptchaProvider:
    def __init__(self, base_url, api_key):
        self.submit_url = f"{base_url}/in.php"
        self.result_url = f"{base_url}/res.php"
        self.api_key = api_key
        self.session = requests.Session()

    def solve(self, sitekey, pageurl, method="userrecaptcha"):
        resp = self.session.post(self.submit_url, data={
            "key": self.api_key,
            "method": method,
            "googlekey": sitekey,
            "pageurl": pageurl,
            "json": 1
        })
        data = resp.json()
        if data.get("status") != 1:
            return {"error": data.get("request")}

        captcha_id = data["request"]
        for _ in range(60):
            time.sleep(5)
            result = self.session.get(self.result_url, params={
                "key": self.api_key, "action": "get",
                "id": captcha_id, "json": 1
            }).json()
            if result.get("status") == 1:
                return {"solution": result["request"]}
            if result.get("request") != "CAPCHA_NOT_READY":
                return {"error": result.get("request")}
        return {"error": "TIMEOUT"}


# Switch by changing one line:
# provider = CaptchaProvider("https://azcaptcha.com", "old_key")
provider = CaptchaProvider(
    "https://ocr.captchaai.com",
    os.environ["CAPTCHAAI_API_KEY"]
)

Adım 4: Paralel Test

Karşılaştırmak için her iki sağlayıcıyı aynı anda çalıştırın:

def parallel_test(sitekey, pageurl, runs=10):
    azcaptcha = CaptchaProvider("https://azcaptcha.com", "old_key")
    captchaai = CaptchaProvider(
        "https://ocr.captchaai.com",
        os.environ["CAPTCHAAI_API_KEY"]
    )

    results = {"azcaptcha": [], "captchaai": []}

    for i in range(runs):
        start = time.time()
        az_result = azcaptcha.solve(sitekey, pageurl)
        results["azcaptcha"].append({
            "success": "solution" in az_result,
            "time": time.time() - start
        })

        start = time.time()
        cai_result = captchaai.solve(sitekey, pageurl)
        results["captchaai"].append({
            "success": "solution" in cai_result,
            "time": time.time() - start
        })

    for provider, data in results.items():
        successes = sum(1 for r in data if r["success"])
        avg_time = sum(r["time"] for r in data) / len(data)
        print(f"{provider}: {successes}/{runs} success, {avg_time:.1f}s avg")

Geçiş Kontrol Listesi

Adım Durum
CaptchaAI hesabı oluşturun ve para yatırın
Tüm dosyalarda temel URL'yi değiştirin
API anahtarını güncelleyin (env var kullanın)
Paralel testi çalıştırın (10'dan fazla çözüm)
Başarı oranlarını karşılaştırın
Çözüm sürelerini karşılaştırın
Yeni uç noktalar için izleme/alerting'yi güncelleyin
Üretim trafiğini değiştir
24 saat boyunca izleyin
AZCaptcha anahtarının kullanımdan kaldırılması

Sorun giderme

Sorun Sebep Düzeltme
ERROR_KEY_DOES_NOT_EXIST Yanlış API anahtarı CaptchaAI API anahtarını kontrol panelinden doğrulayın
ERROR_ZERO_BALANCE Yeni hesapta para yok Captchaai.com'da para ekleyin
Farklı hata kodları Küçük hata kodu farklılıkları Harita hata kodları; çoğu aynı
Çözme oranı farklıdır Farklı çözücü havuzları İstatistiksel olarak geçerli karşılaştırma için 50'den fazla test çözümü çalıştırın

SSS

CaptchaAI, AZCaptcha'nın yerine geçebilecek bir alternatif midir?

Neredeyse. Her ikisi de 2Captcha uyumlu API formatını kullanır. Temel URL'yi ve API anahtarını değiştirin; parametreler ve yanıt biçimi aynıdır.

Mevcut proxy yapılandırmam çalışacak mı?

Evet. CaptchaAI aynı proxy ve proxytype parametrelerini kullanır. Proxy tabanlı çözümleme için hiçbir değişikliğe gerek yoktur.

Göç ne kadar sürer?

Tek bir kod tabanı için 15–30 dakika. Bunların çoğu, temel URL'yi ara ve değiştir yöntemiyle güncellemenin yanı sıra doğrulamak için paralel bir test çalıştırmaktır.

Sonraki Adımlar

Daha hızlı, daha güvenilir CAPTCHA çözümüne geçin —CaptchaAI API anahtarınızı alınve birkaç dakika içinde taşıyın.

İlgili kılavuzlar:

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