Scarnox · Blog

Captcha solver API: nasıl çalışır ve nasıl çağrılır

Captcha solver API, HTTP üzerinden çağırdığınız bir web servisidir. Ona captcha'nın ayrıntılarını gönderirsiniz: görev türü, sayfanın sitekey'i ve sayfa URL'si. Servis, hedef sitenin bulmacanın geçildiğinin kanıtı olarak kabul ettiği bir token döndürür. Scarnox endpoint'i bu şekilde çalışır ve senkrondur; yani tek bir istek size cevabı verir.

Bu rehber isteği, yanıtı, hata yapısını ve bir entegrasyonun üretimde ayakta kalıp kalmadığını belirleyen ayrıntıları kapsar. Önce çalıştırılabilir bir script istiyorsanız Python ile PopularCaptcha nasıl çözülür rehberiyle başlayın.

API neyi yapar, neyi yapmaz

Kodunuz sayfadaki captcha'yı bulur, sitekey'ini okur ve çözücüye gönderir. Çözücü bir token döndürür. Kodunuz bu token'ı sitenin beklediği form alanına yazar ve formu gönderir.

Çözücü sayfanızı yüklemez, hiçbir şeye tıklamaz ve formunuzu göndermez. Yalnızca token'ı üretir. Bu sınırı akılda tutmak, entegrasyonun geri kalanını anlamayı kolaylaştırır: oturumunuz, çerezleriniz ve istek zamanlamanız tamamen kodunuzda kalır.

Bugün tek canlı görev türü PopularCaptcha'dır, proxysiz; yani PopularCaptchaTaskProxyless. Diğer captcha türleri yol haritasındadır. Hangisinin hangisi olduğu için captcha türleri rehberine bakın.

Endpoint

Şu adrese bir POST isteği gönderin:

POST https://api.scarnox.com/api/tasks/create
Authorization: Bearer scarnox_YOURAPIKEY
Content-Type: application/json

Gövde görevi tanımlar:

{
  "captcha_type": "PopularCaptchaTaskProxyless",
  "site_key": "10000000-ffff-ffff-ffff-000000000001",
  "site_url": "https://example.com/signup"
}

Zorunlu üç alan şunlardır:

Üç isteğe bağlı alan daha vardır. proxy, http://user:pass@host:port biçiminde bir değer alır ve proxy görev türleriyle kullanılır. rqdata ve is_invisible, belirli widget varyantları içindir. Görev türlerinin ve alan ayrıntılarının tam listesi API referansında bulunur.

Senkron demek, polling yok demek

Çağrı, token hazır olana kadar bloke olur. Polling yapmazsınız ve bu akışta ikinci bir "sonucu al" isteği yoktur. HTTP istemcinizin zaman aşımını yaklaşık 185 saniyeye ayarlayın; böylece yavaş bir çözme, ağ hatası gibi görünmez.

requests kütüphanesiyle Python'da şöyle görünür:

import requests

r = requests.post(
    "https://api.scarnox.com/api/tasks/create",
    headers={"Authorization": "Bearer scarnox_YOURAPIKEY"},
    json={
        "captcha_type": "PopularCaptchaTaskProxyless",
        "site_key": "10000000-ffff-ffff-ffff-000000000001",
        "site_url": "https://example.com/signup",
    },
    timeout=185,
)
data = r.json()

Anahtarı scriptin içine yazmak yerine bir ortam değişkeninden okuyun. Kaynağı okuyabilen herkes bakiyenizi kullanabilmemelidir.

Yanıtı okumak

Başarılı bir çözümde errorId değeri 0 olur, token solution içinde gelir ve bir cost alanı bulunur:

{"errorId": 0, "solution": {"token": "..."}, "cost": ...}

Başarısız bir çözümde errorId değeri 0 dışında bir şey olur ve makine tarafından okunabilir bir errorCode ile insan tarafından okunabilir bir errorDescription gelir:

{"errorId": 1, "errorCode": "...", "errorDescription": "..."}

Her çağrıda gövdedeki errorId değerini kontrol edin. Tamamlanmış bir HTTP isteğinin size token verdiğini varsaymayın. En önemli kural şudur: yalnızca errorId değeri 0 olduğunda ücretlendirilirsiniz. Başarısız çözümler ücretlendirilmez. Güncel ücretler için fiyatlandırma sayfasına bakın.

Token ömrü

PopularCaptcha token'ları yaklaşık iki dakika içinde süresi dolar. Token'ı aldığınız anda gönderin. Token'ları sonraki kullanım için önbelleğe almayın ve formu göndermeden önce çözmeyin. Token'ı alıp formu göndermek arasında kodunuz birkaç adım çalıştırıyorsa çözme adımını en son ana taşıyın.

Token'ı forma koymak

Çoğu site PopularCaptcha yanıtını h-captcha-response adlı bir form alanından okur. Birçoğu aynı değeri taşıyan g-recaptcha-response alanını da kabul eder; bu yüzden ikisini birden göndermek yaygın ve güvenli bir seçimdir:

requests.post("https://example.com/signup", data={
    "email": "you@example.com",
    "h-captcha-response": token,
    "g-recaptcha-response": token,
})

Form token'ı kabul etmiyorsa sebep çoğu zaman, widget'ın gerçekte bulunduğu sayfayla eşleşmeyen bir sitekey ya da sayfa URL'sidir. Çözücüyü suçlamadan önce değerleri iki kez kontrol edin.

Hata yönetimi

Üretimdeki bir entegrasyonun birkaç alışkanlığa ihtiyacı vardır:

Her hatayı ve her biri için nasıl davranılacağını daha derinlemesine captcha solver hata yönetimi rehberi anlatır.

Başlamak

Hesap oluşturun; kredi kartı gerekmeden ücretsiz deneme kredisiyle başlayabilirsiniz. Ardından yukarıdaki isteği sahibi olduğunuz bir test sayfasında çalıştırın ve bir şeye bağlamadan önce formun token'ı kabul ettiğini kontrol edin.

Sonraki adımlar