Çoğu GeeTest v3 hatası üç gruptan birine girer: istek aşaması hataları (API'ye gönderme), sonuç aşaması hataları (cevap için yoklama) ve hedef sayfa doğrulama hataları (API değerleri döndürür ancak sayfa bunları hâlâ reddeder). GeeTest'e özgü en büyük sorun neredeyse her zaman aynıdır: eski bir challenge değeri.
CaptchaAI'lerGeeTest v3 API belgeleriaçıktır: her çözüm isteği için yeni bir challenge değeri almalısınız. Captcha sayfaya yüklendiğinde eski meydan okuma geçersiz hale gelir. Bu, istek çoğunlukla doğru görünse bile GeeTest entegrasyonunun başarısız olabileceği anlamına gelir.
Bu kılavuz, tüm yaygın arıza modellerini ve her biri için en hızlı düzeltmeyi açıklamaktadır.
1 numaralı GeeTest hatası: eski challenge
İlk önce kontrol edilmesi gereken bir şey varsa o da tazeliğe meydan okumaktır.
GeeTest v3 iki temel parametre gerektirir:
gt— genel web sitesi anahtarı (statik, değişmez)challenge— dinamik meydan okuma anahtarı (her sayfa yüklemesinde değişir)
Neden kırılıyor
challenge değeri, GeeTest widget'ı sayfada başlatıldığında oluşturulur. Bunu bir kez yakalar ve birden fazla çözüm isteğinde yeniden kullanırsanız, ilk istekten sonraki her istek:
- gönderim sırasında API tarafından reddedilebilir veya
- sorgulamanın süresi dolduğu için hedef sayfanın reddettiği bir sonuç üretmek
Nasıl düzeltilir?
Her çözüm isteğinden önce, yeni bir challenge döndüren API çağrısını bulmak için sayfanın ağ isteklerini inceleyin. Yeni bir değer elde etmek için bu isteği tekrar yürütün ve ardından hemen CaptchaAI'ye gönderin.
# Pseudocode: fetch a fresh challenge before each solve
import requests
def get_fresh_challenge(target_url):
"""Hit the GeeTest init endpoint to get a new challenge."""
resp = requests.get(f"{target_url}/geetest/register", timeout=10)
data = resp.json()
return data["challenge"], data["gt"]
challenge, gt = get_fresh_challenge("https://example.com")
# Now submit to CaptchaAI immediately — do not delay
Genel kural:
challenge'nin yakalanması ile çözüm isteğinin gönderilmesi arasındaki süre birkaç saniyeden fazlaysa yenileyin.
İstek aşaması hataları
Bu hatalar, görevi https://ocr.captchaai.com/in.php'ye gönderdiğinizde meydana gelir.
ERROR_WRONG_USER_KEY
Neden: API anahtarı biçimi hatalı (32 karakter olmalıdır).
Düzeltme: Anahtarı şuradan doğrulayın:captchaai.com/api.php. Fazladan karakter veya boşluk eklemeyin.
ERROR_KEY_DOES_NOT_EXIST
Neden: API anahtarı doğru biçimlendirilmiş ancak hiçbir etkin hesapla eşleşmiyor.
Düzeltme: CaptchaAI kontrol panelinizde oturum açın ve anahtarınızın etkin olduğunu doğrulayın.
ERROR_ZERO_BALANCE
Neden: Mevcut planınızda ücretsiz konu yok.
Düzeltme: İş parçacıklarının serbest kalmasını, eşzamanlılığın azalmasını veya planınızı yükseltmesini bekleyin.
ERROR_PAGEURL
Neden: İstekte pageurl parametresi eksik.
Düzeltme: GeeTest widget'ının yüklendiği sayfanın tam URL'sini ekleyin. Örnek:
pageurl=https://staging.example.com/qa-login
ERROR_BAD_PARAMETERS
Neden: Bir veya daha fazla zorunlu alan eksik veya hatalı biçimlendirilmiş. GeeTest için gerekli parametreler şunlardır:
| Parametre | Tür | Gerekli | Açıklama |
|---|---|---|---|
key |
Dize | Evet | CaptchaAI API anahtarınız |
method |
Dize | Evet | geetest olmalı |
gt |
Dize | Evet | Statik genel web sitesi anahtarı |
challenge |
Dize | Evet | Dinamik mücadele anahtarı (yeni olmalı) |
pageurl |
Dize | Evet | Tam sayfa URL'si |
Düzeltme: gt, challenge ve pageurl'nin mevcut ve doğru biçimlendirilmiş olduğundan emin olun.
HTML veya 500/502 yanıtları
Neden: Geçici sunucu tarafı hatası — parametre sorunu değil.
Düzeltme: 5-10 saniye bekleyip isteği yeniden deneyin.
Sonuç aşaması hataları
Bu hatalar https://ocr.captchaai.com/res.php'yi yokladığınızda meydana gelir.
CAPCHA_NOT_READY
Bu bir hata değildir. Bu, captcha'nın hâlâ çözülmekte olduğu anlamına gelir. GeeTest v3, CaptchaAI'de %100 başarı oranıyla genellikle 12 saniyeden kısa sürer.
Düzeltme: 5 saniye bekleyip tekrar anket yapın. Bunu bir başarısızlık olarak görmeyin.
ERROR_WRONG_ID_FORMAT
Neden: Captcha kimlik biçimi yanlış — Kimlikler yalnızca sayısal olmalıdır.
Düzeltme: in.php tarafından döndürülen kimliğin aynısını hiçbir değişiklik yapmadan kullandığınızı doğrulayın.
ERROR_WRONG_CAPTCHA_ID
Neden: Kimlik, gönderilen hiçbir görevle eşleşmiyor.
Düzeltme: Gönderim yanıtındaki doğru kimliği kullandığınızdan emin olun. Birden fazla görev gönderdiyseniz doğru olanı yokladığınızdan emin olun.
ERROR_EMPTY_ACTION
Neden: Anket isteğinizde action parametresi eksik veya boş.
Düzeltme: Her anket isteğine action=get'yi ekleyin:
https://ocr.captchaai.com/res.php?key=YOUR_KEY&action=get&id=CAPTCHA_ID
ERROR_CAPTCHA_UNSOLVABLE
Neden: Muhtemelen eski bir challenge değeri veya desteklenmeyen bir GeeTest değişkeni nedeniyle sorun çözülemedi.
Düzeltme: challenge değerini yenileyin ve yeniden deneyin.
ERROR_INTERNAL_SERVER_ERROR
Neden: CaptchaAI'de sunucu tarafı sorunu.
Düzeltme: 10 saniye bekleyip yeniden deneyin.
Hedef sayfa doğrulama hataları
Bunlar hata ayıklaması en zor hatalardır çünkü CaptchaAI API geçerli bir sonuç döndürür, ancak hedef sayfa bunu hâlâ reddeder.
GeeTest v3 çözümü başarılı olduğunda API üç değer döndürür:
{
"challenge": "1a2b3456cd67890e12345fab678901c2de",
"validate": "09fe8d7c6ba54f32e1dcb0a9fedc8765",
"seccode": "12fe3d4c56789ba01f2e345d6789c012|jordan"
}
Bunlar hedef sayfaya şu şekilde gönderilmelidir:
| API yanıt alanı | Hedef sayfa alanı |
|---|---|
challenge |
geetest_challenge |
validate |
geetest_validate |
seccode |
geetest_seccode |
Hata 1: Yanlış alan eşlemesi
Belirti: API değerleri döndürüyor ancak hedef sayfa bunları hemen reddediyor.
Neden: Döndürülen değerler yanlış alanlara veya yanlış istek yoluna eklenmiş.
Düzeltme: Hedef sayfadaki manuel GeeTest çözümünden ağ trafiğini inceleyin. GeeTest sonucunu gönderen ve alan adlarınızla tam olarak eşleşen POST isteğini bulun.
Arıza 2: Eski challenge yukarı akışta kullanıldı
Belirti: API değerleri döndürüyor ancak sayfada, sorgulamanın süresinin dolduğu veya geçersiz olduğu belirtiliyor.
Neden: challenge değeri çok erken yakalandı veya yeniden kullanıldı.
Düzeltme: Her çözüm isteğinden hemen önce yeni bir challenge alın. Önbelleğe almayın veya yeniden kullanmayın.
Hata 3: Yanlış sayfa içeriği
Belirti: Doğrulama, yeni girişlerle bile başarısız oluyor.
Neden: CaptchaAI'ye gönderilen pageurl, GeeTest widget'ının yüklendiği gerçek sayfayla eşleşmiyor.
Düzeltme: Protokol ve yol da dahil olmak üzere tam URL'yi kullanın. Widget AJAX aracılığıyla farklı bir rotaya yüklendiyse o rotanın URL'sini kullanın.
Hata 4: İstek-yapı uyumsuzluğu
Belirti: Alanlar doğru ancak istek biçimi yanlış.
Neden: Hedef sayfa, GeeTest alanlarının belirli bir içerik türünde (ör. JSON gövdesi veya form kodlu) veya diğer form alanlarının yanında olmasını bekler.
Düzeltme: Gönderim isteğinizi manuel çözümden elde edilen ağ trafiğiyle karşılaştırın. İçerik türünü, alan sırasını ve varsa ek alanları eşleştirin.
Hızlı hata düzeltme referansı
| Hata / Belirti | Sahne | Muhtemel sebep | Düzeltme |
|---|---|---|---|
ERROR_WRONG_USER_KEY |
Gönder | Hatalı biçimlendirilmiş API anahtarı | 32 karakterli anahtarı doğrulayın |
ERROR_KEY_DOES_NOT_EXIST |
Gönder | Geçersiz anahtar | Kontrol panelini kontrol edin |
ERROR_ZERO_BALANCE |
Gönder | Ücretsiz konu yok | Bekleyin veya planı yükseltin |
ERROR_PAGEURL |
Gönder | pageurl eksik |
Tam sayfa URL'sini ekleyin |
ERROR_BAD_PARAMETERS |
Gönder | Eksik gt, challenge veya pageurl |
Gerekli tüm alanları doğrulayın |
CAPCHA_NOT_READY |
Anket | Çözüm devam ediyor | 5 saniye bekleyip tekrar deneyin |
ERROR_WRONG_ID_FORMAT |
Anket | Sayısal olmayan captcha kimliği | in.php'den tam kimliği kullanın |
ERROR_WRONG_CAPTCHA_ID |
Anket | Geçersiz captcha kimliği | Gönderim kimliğini doğrulayın |
ERROR_EMPTY_ACTION |
Anket | action=get eksik |
Eylem parametresi ekle |
ERROR_CAPTCHA_UNSOLVABLE |
Anket | Eski zorluk veya desteklenmeyen değişken | Mücadeleyi yenileyin, yeniden deneyin |
| API değerleri döndürüyor ancak sayfa reddediyor | Doğrulama | Eski meydan okuma, yanlış alanlar, yanlış URL | Mücadeleyi yenileyin, alan eşlemesini doğrulayın |
Python: GeeTest v3 çözümünü yeni zorluklarla tamamlayın
import time
import requests
API_KEY = "YOUR_CAPTCHAAI_API_KEY"
SUBMIT_URL = "https://ocr.captchaai.com/in.php"
RESULT_URL = "https://ocr.captchaai.com/res.php"
def get_fresh_challenge(target_url):
"""Fetch a fresh GeeTest challenge from the target page."""
resp = requests.get(f"{target_url}/api/geetest/register", timeout=10)
data = resp.json()
return data["gt"], data["challenge"]
def solve_geetest_v3(api_key, gt, challenge, pageurl):
"""Submit a GeeTest v3 challenge and return the validation package."""
# Submit
submit_resp = requests.post(
SUBMIT_URL,
data={
"key": api_key,
"method": "geetest",
"gt": gt,
"challenge": challenge,
"pageurl": pageurl,
"json": 1,
},
timeout=30,
)
submit_resp.raise_for_status()
submit_data = submit_resp.json()
if submit_data.get("status") != 1:
raise RuntimeError(f"Submit failed: {submit_data}")
captcha_id = submit_data["request"]
print(f"Task created — captcha ID: {captcha_id}")
# Wait before first poll
time.sleep(15)
# Poll for result
for _ in range(60):
result_resp = requests.get(
RESULT_URL,
params={
"key": api_key,
"action": "get",
"id": captcha_id,
"json": 1,
},
timeout=30,
)
result_resp.raise_for_status()
result_data = result_resp.json()
if result_data.get("request") == "CAPCHA_NOT_READY":
time.sleep(5)
continue
if result_data.get("status") == 1:
return result_data["request"]
raise RuntimeError(f"Polling error: {result_data}")
raise TimeoutError("GeeTest v3 solve timed out")
# Usage: always fetch a fresh challenge first
PAGE_URL = "https://staging.example.com/qa-login"
gt, challenge = get_fresh_challenge(PAGE_URL)
result = solve_geetest_v3(API_KEY, gt, challenge, PAGE_URL)
print(f"Result: {result}")
# The result contains: challenge, validate, seccode
# Map them to: geetest_challenge, geetest_validate, geetest_seccode
Node.js: GeeTest v3 çözümünü yeni zorluklarla tamamlayın
const API_KEY = "YOUR_CAPTCHAAI_API_KEY";
const SUBMIT_URL = "https://ocr.captchaai.com/in.php";
const RESULT_URL = "https://ocr.captchaai.com/res.php";
function sleep(ms) {
return new Promise((resolve) => setTimeout(resolve, ms));
}
async function getFreshChallenge(targetUrl) {
const resp = await fetch(`${targetUrl}/api/geetest/register`);
const data = await resp.json();
return { gt: data.gt, challenge: data.challenge };
}
async function solveGeetestV3(apiKey, gt, challenge, pageurl) {
// Submit
const submitResp = await fetch(SUBMIT_URL, {
method: "POST",
headers: { "Content-Type": "application/x-www-form-urlencoded" },
body: new URLSearchParams({
key: apiKey,
method: "geetest",
gt: gt,
challenge: challenge,
pageurl: pageurl,
json: "1",
}),
});
const submitData = await submitResp.json();
if (submitData.status !== 1) {
throw new Error(`Submit failed: ${JSON.stringify(submitData)}`);
}
const captchaId = submitData.request;
console.log(`Task created — captcha ID: ${captchaId}`);
await sleep(15_000);
// Poll for result
for (let i = 0; i < 60; i++) {
const resultResp = await fetch(
`${RESULT_URL}?${new URLSearchParams({
key: apiKey,
action: "get",
id: captchaId,
json: "1",
})}`
);
const resultData = await resultResp.json();
if (resultData.request === "CAPCHA_NOT_READY") {
await sleep(5_000);
continue;
}
if (resultData.status === 1) {
return resultData.request;
}
throw new Error(`Polling error: ${JSON.stringify(resultData)}`);
}
throw new Error("GeeTest v3 solve timed out");
}
// Usage
const PAGE_URL = "https://staging.example.com/qa-login";
(async () => {
const { gt, challenge } = await getFreshChallenge(PAGE_URL);
const result = await solveGeetestV3(API_KEY, gt, challenge, PAGE_URL);
console.log("Result:", result);
// Map result fields to: geetest_challenge, geetest_validate, geetest_seccode
})();
SSS
İstek doğru görünse bile GeeTest neden başarısız olmaya devam ediyor?
En yaygın neden, eski bir challenge değeridir. gt ve pageurl doğru olsa bile, süresi dolmuş bir sorgulama API'nin başarısız olmasına veya hedef sayfanın döndürülen değerleri reddetmesine neden olur. Her çözüm talebinden hemen önce daima yeni bir meydan okuma getirin.
En yaygın GeeTest v3 hatası nedir?
Artık yeni olmayan bir challenge değerinin yeniden kullanılması. CaptchaAI belgeleri, captcha sayfaya yüklendiğinde eski sorgulamanın geçersiz hale geleceği konusunda açıkça uyarıyor.
CAPCHA_NOT_READY ne anlama geliyor?
Bu, bir hata değil, çözümün hâlâ devam ettiği anlamına gelir. 5 saniye bekleyin ve res.php'yi tekrar sorgulayın. GeeTest v3'nin CaptchaAI'de çözülmesi genellikle 12 saniyenin altında sürer.
API değerleri döndürdüğü halde sayfa bunları hâlâ reddediyorsa ne yapmalıyım?
Üç şeyi sırayla kontrol edin:
- Yeniliğe meydan okuyun —
challengegönderilmeden hemen önce mi getirildi? - Alan eşleme —
geetest_challenge,geetest_validatevegeetest_seccode, hedef sayfanın beklenen alanlarıyla doğru şekilde eşlendi mi? - İstek yapısı — Hedef sayfa JSON, form kodlu veriler veya başka bir format bekliyor mu? Manuel çözümün ağ trafiğiyle karşılaştırın.
GeeTest v3'nin reCAPTCHA v2'den farkı nedir?
GeeTest v3 bir bulmaca/slider mücadelesidir (onay kutusu değil). Her çözüm için yenilenmesi gereken dinamik bir challenge parametresi gerektirir. API, tek bir belirteç yerine üç doğrulama alanı (challenge, validate, seccode) döndürür. reCAPTCHA v2 çözümü için bkz.API Kullanarak reCAPTCHA v2 Nasıl Çözülür?.
CaptchaAI, GeeTest v4'yi destekliyor mu?
Bu makale yalnızca GeeTest v3'yi kapsamaktadır. Kontrol edinCaptchaAI API belgeleridesteklenen en son captcha türleri için.
GeeTest iş akışınızı düzeltin
GeeTest entegrasyonunuz başarısız oluyorsa:
- Meydan okumayı kontrol edin — Taze mi? Her çözümden hemen önce yeni bir tane getirin.
- Parametreleri doğrulayın —
gt,challenge,pageurl'nin tümü doğru olmalıdır. - Alan eşlemesini inceleyin — Döndürülen
challenge,validateveseccodedoğru alanlara girmelidir. - Manuel çözümle karşılaştırın — Başarılı bir manuel GeeTest çözümünden tam istek yapısını yakalamak için tarayıcı DevTools'u kullanın.
Şununla başla:CaptchaAI GeeTest v3 çözücü, parametrelerinizi şuna göre onaylayın:API belgelerive okuGeeTest v3 Captcha Nasıl Çalışır?Mücadele akışı hakkında arka plana ihtiyacınız varsa.
Yineleme günlüğü
| Yineleme | Odaklanma | Değişiklikler |
|---|---|---|
| Taslak 1 | Yapı ve içerik | İlk sorun giderme taslağı — 3 hata aşaması, hata düzeltme tablosu, SSS |
| Taslak 2 | Teknik doğruluk | Tüm hata kodları ve GeeTest parametreleri captchaai.com/api-docs. ile doğrulandı. API parametre tablosu eklendi. Onaylanan zorluk/validate/seccode alan eşlemesi. |
| Taslak 3 | Kod örnekleri | Yeni zorluklarla dolu Python ve Node.js örnekleri eklendi. Mücadele yenileme modeli için sahte kod eklendi. |
| Taslak 4 | Doğrulama hatalarının derinliği | 4 farklı hata moduyla genişletilmiş hedef sayfa doğrulama bölümü. Alan eşleme tablosu eklendi. İstek yapısı uyumsuzluğu tanısı eklendi. |
| Taslak 5 | Nihai QA cilası | Tüm hata kodlarının resmi belgelerle eşleştiği doğrulandı. Hızlı başvuru tablosu eklendi. Giriş kısmı sıkılaştırıldı. Küme makalelerine çapraz bağlantılar eklendi. Onaylanmış SSS yanıtları şemaya hazırdır. |
Görsel varlık özeti
Kahraman resmi
- Alternatif metin: Geliştiricinin GeeTest v3 hatalarını gidermesi — istek, yoklama ve doğrulama hatası teşhisi
- Gösterilmelidir: Hata akış aşamaları ve hata noktalarıyla birlikte hata ayıklama bağlamı
- Dosya adı: geetest-v3-errors-troubleshooting-hero.png
Yazı içi görsel 1
- Yerleşim: "Sonuç aşaması hataları"ndan sonra
- Tür: Karar ağacı
- Alternatif metin: GeeTest v3 hataları için karar ağacı — istek hataları, yoklama hataları ve doğrulama hataları
- Dosya adı: geetest-v3-error-decision-tree.png
Yazı içi görsel 2
- Yerleşim: "Hedef sayfa doğrulama hataları"ndan sonra
- Tür: Nedenler ve düzeltmeler şeması
- Alternatif metin: GeeTest v3 sayfa reddinin yaygın nedenlerini ve bunların düzeltmelerini gösteren diyagram
- Dosya adı: geetest-v3-validation-causes-fixes.png