GeeTest captcha açıklaması: nasıl çalışır ve nasıl çözülür
GeeTest, ziyaretçiden görsel bir görevi yapmasını isteyen widget'lar sunan bir captcha sağlayıcısıdır: bir bulmaca parçasını boşluğa sürüklemek, simgeleri verilen sırayla tıklamak ya da kısa bir kaydırıcı hareketini takip etmek. E-ticaret sitelerinde, giriş sayfalarında ve birçok bölgedeki uygulama backend'lerinde yaygındır. Scarnox'un henüz çözmediği captcha ailelerinden biridir de. Bu rehber GeeTest'in nasıl çalıştığını, neden token tabanlı bir widget'tan daha zor otomatikleştirildiğini, insanların genel olarak hangi yaklaşımları kullandığını ve Scarnox desteğinin bugün nerede durduğunu açıklar.
GeeTest bir sayfada ne yapar
GeeTest captcha'sı genellikle üç adımda yüklenir:
- Sayfa GeeTest script'ini ekler ve bir captcha ID'si ile bir widget oluşturur. Birçok entegrasyonda bu ID
gtadlı bir parametre olarak geçer. - Widget, GeeTest sunucusundan taze bir bulmaca ister. Bulmaca bir
challengedeğeri ile bulmacanın ihtiyaç duyduğu görselleri ya da karo konumlarını içerir. - Ziyaretçi görevi tamamladığında widget sonucu siteye geri gönderir. Sitenin backend'i formu kabul etmeden önce bu sonucu captcha sağlayıcısıyla doğrular.
Üçüncü adım önemlidir. Makul görünen bir değer yetmez, çünkü sunucu sonucu tek bir bulmacaya bağlı ve süresi dolan bir değerle kontrol eder. Bu yüzden başka bir oturumdan kopyalanan bir değer başarısız olur ve eski bir sonucun tekrar oynatılması işe yaramaz.
GeeTest neden token widget'ından zordur
PopularCaptcha'da sayfanın bir token dizisine ihtiyacı vardır ve tek bir istek bu diziyi döndürür. GeeTest üç yönden farklıdır:
- Çıktı tek bir dize değil, bir görevin sonucudur. Site birbiriyle ilişkili birkaç değer bekler ve hepsi aynı bulmacadan gelmelidir.
- Bulmaca görsel ve konumsaldır. Bir solver, bir bulmaca parçasının nereye oturduğunu ya da hangi simgelerin eşleştiğini bulmalı, sonra insan gibi görünen bir hareket üretmelidir.
- Kontroller cevabın yanı sıra davranışa da bakar. Hız, yol ve zamanlama incelenebilir. Doğru bir konum, robotik bir şekilde sunulursa yine de reddedilebilir.
Bu nedenle GeeTest çözümü çok adımlı bir iştir: bulmacayı getir, görseldeki hedefleri bul, bir hareket üret, gönder ve sonucu oku. Her adım başarısız olabilir ve adımlar arasında çok beklerseniz bulmaca süresi dolar.
Genel yaklaşımlar
GeeTest sayfalarını otomatikleştirenler genellikle üç yaklaşımdan birini kullanır. Hiçbiri bir kestirme yol değildir ve her birinin maliyeti vardır:
- Gerçek bir tarayıcı kullanmak. Playwright ya da Selenium sayfayı yükler, scriptiniz kaydırıcıyı hareket ettirir. Bu, kendi sitenizde ya da kullanmanıza izin verilen bir test ortamında en iyi çalışır. Tarayıcı gerçektir, ama hareketin yine de doğal görünmesi gerekir.
- Görüntü eşleştirme. Kodunuz bulmacanın arka plan görselini indirir, şablon eşleştirme ile (örneğin OpenCV kullanarak) boşluğu bulur ve sürükleme mesafesini hesaplar. Bu, çoğu zaman kendi kendine kurduğunuz bir çözümün en güvenilir kısmıdır; ama satıcı görsel düzenini değiştirdiğinde bozulur.
- İnsan döngüde ya da bir çözme servisi. Bir insan ya da yönetilen bir servis bulmacayı çözer ve sonucu döndürür. Scarnox bu seçeneği GeeTest için sunmayı planlıyor, ama henüz canlı değil.
Hangisini seçerseniz kapsamı dürüst tutun: sahibi olduğunuz akışları, kullanmanıza izin verilen test ortamlarını ya da toplamanıza izin verilen herkese açık verileri otomatikleştirin.
Captcha ID'sini bulmak
Başlamak için koda ihtiyacınız yok. DevTools'u açın, sayfayı yeniden yükleyin ve Network sekmesinde geetest ya da gt için arama yapın. Widget'ı yükleyen ilk istek genellikle captcha ID'sini gösterir. Küçük bir script bunu kaydedebilir; bu, bir sayfa widget'ını değiştirdiğinde fark etmek istediğinizde kullanışlıdır:
import re
import requests
html = requests.get("https://example.com/login", timeout=30).text
match = re.search(r"gt['\"]?\s*[:=]\s*['\"]([a-f0-9]{32})['\"]", html)
print("captcha id:", match.group(1) if match else "not found")
Yukarıdaki desen gt yanında 32 karakterlik bir onaltılık değer arar. Satıcılar işaretlemelerini değiştirir; bu yüzden bunu bir başlangıç noktası sayın ve çıktıyı test ettiğiniz sayfayla kontrol edin.
Scarnox desteğinin durumu
Bir proje planlarken bunu net bilin:
- Bugün canlı: PopularCaptcha, proxysiz ve kendi proxy'nizle.
- Yakında: GeeTest, reCAPTCHA v2 ve v3, Cloudflare Turnstile, AWS WAF ve Arkose. GeeTest çözümü canlı olarak listelenene kadar buna dayanan bir üretim akışı kurmayın.
Projeniz GeeTest'e şimdi ihtiyaç duyuyorsa pratik yol, test edebileceğiniz sayfalar için tarayıcı ve görüntü adımlarını kendiniz kurmak ve kodunuzu API yayına girdiğinde ona geçmeye hazır tutmaktır. Bu arada hesap oluşturabilir ve kredi kartı gerekmeden ücretsiz deneme kredisiyle başlayabilirsiniz. Bu size test edebileceğiniz çalışan bir PopularCaptcha akışı ve GeeTest'i daha sonra takabileceğiniz bir yer verir. Güncel oranlar için güncel fiyatlandırmaya bakın.
Meşru kullanımlar
- Otomatik regresyon testleri için captcha'nın engellediği kendi giriş ya da ödeme akışınızı test etmek.
- Görsel bir bulmacayı çözemeyen bir ziyaretçinin formu yine de tamamlayabileceği başka bir yola sahip olduğunu doğrulayan erişilebilirlik kontrolleri.
- İzin verildiği bir siteyi izlemek; örneğin bir deploy'dan sonra bir widget'ın hâlâ yüklendiğini kontrol etmek.
Captcha otomasyonunu sahte hesap oluşturmak, bir giriş formuna saldırmak ya da sınırlı stok kapmak için kullanmayın. Bu kullanımlar çoğu sitenin kurallarını çiğner ve Scarnox tarafından desteklenmez.