Selenium CAPTCHA Çözücü: Python ve WebDriver Scriptleri için
Bir reCAPTCHA, bir Turnstile kontrolü, bir GeeTest v3 kaydırıcısı ya da bozuk harfli bir görsel, WebDriver oturumunuzu sonlandırmamalı. Tarayıcıya CapSkip uzantısını verin veya testinizden SDK'yı çağırın; her çözüm sayaç olmadan yerel olarak çalışır.
- Python, C# ve Node.js
- Uzantı veya SDK yolu
- Selenium Grid uyumlu
- /signup sayfasını aç
- formu doldur
- CAPTCHA'yı çöz
- submit
4 passed0 engellendiBir WebDriver çalıştırması er ya da geç bir doğrulamayla korunan giriş, arama veya kayıt formuna takılır; işte Selenium CAPTCHA çözücüsü tam bu noktada devreye girer. Selenium öğeleri bulabilir, tıklayabilir ve yazabilir, ancak bir reCAPTCHA token'ı üretemez ya da bozuk harfleri okuyamaz; bu yüzden test takılır ve rapor zaman aşımlarıyla dolar. CapSkip sürücünün yanında, aynı Windows bilgisayarda ya da betiğin erişebildiği bir VPS'te durur ve tarayıcı beklerken yanıtı geri verir.
Entegre etmenin iki yolu var ve farklı Selenium alışkanlıklarına uyuyorlar. Kodsuz yol, CapSkip uzantısını zaten barındıran bir Chrome veya Firefox profilini başlatır; böylece widget'lar sanki bir insan işaretlemiş gibi sayfanın içinde çözülür. Betikli yol ise kontrolü testinizde tutar: pip install capskip ile kurun, sitekey'i find_element ile okuyun, solver.recaptcha() veya solver.turnstile() çağırın ve token'ı execute_script ile geri yazın. Görsel CAPTCHA'lar yaklaşık 0,1 saniyede metin olarak döner.
Token tarafında CapSkip; reCAPTCHA v2, v3 ve Enterprise ile Cloudflare Turnstile'ı kapsar. GeeTest v3 kaydırmalı bulmacaları, Capy bulmacaları ve CaptchaFox da dahildir; ALTCHA ve Friendly Captcha'nın arkasındaki proof-of-work kontrolleri de öyle. Görsel CAPTCHA'lar binlerce çeşidi kapsar. hCaptcha, FunCaptcha ve GeeTest v4 desteklenmez. Hiçbir şey ölçülmez; yüzlerce challenge'a takılan bir gecelik regresyon testi, hiçbirine takılmayanla tamamen aynı şekilde faturalandırılır.
Sürücü kodunuz olduğu gibi kalabilir. CapSkip uzantısını bir tarayıcı profiline ekleyin, uygulama çalışırken Selenium'u o profille başlatın; açık beklemeleriniz (explicit wait) işlerken challenge'lar kendiliğinden çözülür. SDK'ya yalnızca bir testin yanıtı elinde tutması gerektiğinde geçin. Uzantı rehberini okuyun
Selenium CAPTCHA çözücü WebDriver için neler yapar
Chrome veya Firefox için çözüm profili
Uzantıyı bir kez, ayrı bir Chrome profiline kurun ve bu profili user-data-dir ile sürücüye verin ya da Firefox eklentisini install_addon() ile yükleyin. Uygulama çalıştığı sürece Selenium'un açtığı her pencere artık çözüm yapabilir.
Aynı test dosyasından token çağrıları
data-sitekey değerini find_element ile okuyun, bunu driver.current_url ile birlikte solver.recaptcha() metoduna verin ve g-recaptcha-response alanını execute_script ile ayarlayın. Uygulama çalışırken tarayıcı betiğinizin kontrolünde kalır.
Görsel metni canlı öğeden alınır
Görseli screenshot_as_base64 ile yakalayın ve solver.normal() metoduna gönderin. Görsel hiçbir zaman iki kez istenmediği için send_keys ile yazdığınız metin, bu oturuma gösterilenle birebir eşleşir.
undetected-chromedriver ile birlikte çalışır
undetected-chromedriver ve SeleniumBase UC modu gibi gizlilik odaklı sürücüler challenge'ları seyrekleştirir. CapSkip ise yine de araya sızanları çözer; böylece iki araç sorunun farklı yarılarını üstlenir.
Eski 2Captcha yardımcıları çalışmaya devam eder
2Captcha veya Anti-Captcha etrafında yazdığınız yardımcı fonksiyonlarda hiçbir düzenleme gerekmez. Uygulamada o servisi emülatör olarak seçin, Hosts file satırındaki Add düğmesine tıklayın; bu çağrıları artık CapSkip kendisi yanıtlar.
Tek abonelikle paralel sürücüler
Makinenin kaldırabildiği kadar WebDriver örneği çalıştırın. Thread sayısı hiçbir zaman planla sınırlanmaz ve yüzlerce challenge ile karşılaşan bir test paketi aylık faturaya hiçbir şey eklemez.
WebDriver kodunuzun CapSkip'e nasıl ulaşacağını seçin
from selenium import webdriver
from capskip import CapSkip
driver = webdriver.Chrome()
driver.get("https://example.com/login")
solver = CapSkip(host="127.0.0.1", port=8080)
sitekey = driver.find_element("css selector", ".g-recaptcha").get_attribute("data-sitekey")
token = solver.recaptcha(sitekey=sitekey, url=driver.current_url)["code"]
# Inject the token and submit
driver.execute_script(
"document.getElementById('g-recaptcha-response').innerHTML = arguments[0];",
token,
)
driver.find_element("css selector", "button[type=submit]").click()Python Selenium: sitekey'i widget'tan okuyun, CapSkip'ten bir token isteyin, onu yanıt alanına yazın ve gönder düğmesine tıklayın.
Selenium profilinin içinde uzantı
Chrome veya Firefox uzantısını Selenium'un başlattığı profile yükleyin. Widget'lar yerinde çözülür, bu yüzden testiniz hiçbir çözüm kodu taşımaz.
Locator'larınızın yanında SDK çağrıları
Python, Node.js, PHP ve C# istemcileri, kullandığınız WebDriver binding'inde execute_script veya send_keys için hazır token'lar ve görsel metinleri döndürür.
Diğer tüm binding'ler için yerel API
Java ve SDK'sı olmayan diğer binding'ler HTTP API'yi doğrudan çağırabilir; 2Captcha tarzı servisler için yazılmış Selenium kodu da emülatör açıldığı anda çalışır.
Selenium betiğinizi canlı bir reCAPTCHA üzerinde deneyin
WebDriver'ınızı reCAPTCHA v2 demo sayfamıza yöneltin, çözüm adımını gerçek Google widget'ına karşı çalıştırın ve kendi hedeflerinize geçmeden önce formun token'ı kabul ettiğini izleyin.
CapSkip'i Selenium test paketinizin yanında hazırlayın
-
CapSkip'i test makinesine kurun
CapSkip'i WebDriver betiklerinizi çalıştıran Windows masaüstüne veya VPS'e ya da bu betiklerin ağ üzerinden erişebildiği herhangi bir makineye kurun ve testler sürerken açık tutun. Yükleyiciyi indirin
-
Bir plan ya da ücretsiz deneme etkinleştirin
CapSkip'e giriş yapmak için siparişinizle birlikte e-postayla gönderilen giriş bilgilerini kullanın. Deneme sürümü tek bir cihaza üç gün ve 500 çözüm verir; bu, bir test paketini gerçek hedeflere karşı çalıştırmaya yeter. Ücretsiz denemeyi başlatın
-
Çözüm adımını sürücünüze ekleyin
Selenium'u uzantılı profille başlatın ya da pip install capskip ile kurup bir challenge akışınızı kestiği her yerde çözücüyü çağırın. Her metot ve seçenek belgelenmiştir. API belgelerini açın
Selenium içinde yerel çözüm ve çözüm başına ücretli API'ler
Selenium çalıştırmalarınız her gün challenge'larla karşılaştığında CapSkip ile 2Captcha gibi servislerin nasıl ayrıştığı.
| Özellik | CapSkip | 2Captcha & API servisleri |
|---|---|---|
| Tam bir test çalıştırmasının maliyeti | Çözüm sayısı ne olursa olsun $35'ten başlayan aynı aylık plan | Her çözüm faturalandırılır, daha büyük paket daha büyük fatura demek |
| Challenge nerede çözülür | Tarayıcılarınızı yöneten makinede veya bir VPS'te | Uzak sunucularda, çoğu zaman insan çalışanlar tarafından |
| Görsel CAPTCHA yanıt süresi | Yaklaşık 0,1 saniye, internet üzerinden gidiş yok | Birkaç saniye, üstüne her görsel için bir ağ gidiş-dönüşü |
| 2Captcha için zaten yazdığınız kod | Yerleşik emülatör sayesinde çalışmaya devam eder | O sağlayıcının API'sine ve bakiyesine bağlıdır |
| Oturum ekran görüntüleri ve challenge verileri | Kendi makinenizde kalır | Her çözümde üçüncü taraf bir servise gönderilir |
| Paralel WebDriver oturumları | Planda thread sınırı yok, yalnızca donanımınız sınırlar | Ek eşzamanlılık çoğu zaman daha pahalıdır |
| Selenium'a bağlanma yolları | Uzantılı profil, Python veya .NET istemcisi ya da düz HTTP çağrıları | API anahtarı, ön ödemeli kredi ve kendi istemcileri |
Fiyatlandırma
Çözüm başına ödemeye son
Lisansınızı seçin
Gold Lisansı
$75/ ay
Gold aboneliği alAnında lisans aktivasyonu
Aylık faturalandırılır. Hesabınızdan istediğiniz zaman iptal edebilirsiniz.
Özellikler aynı. Daha çok makine, daha çok kapasite.
Her makine, kendi işlemcisi ve belleğinin izin verdiği kadar hızlı çözer. Daha çok makine aynı anda daha çok iş parçacığı çalıştırır; Silver aynı anda iki kat, Gold üç kat CAPTCHA çözer.
- Sınırsız çözüm, günlük limit yok
- Sınırsız iş parçacığı, hız donanımınızla ölçeklenir
- %90 ila %100 tanıma doğruluğu
- Başlıca çözüm servisi API'lerinin doğrudan yerine geçer
- Neredeyse her araçla çalışır, kod yazmaya gerek yok
- REST API, SDK'lar ve bir tarayıcı eklentisi
- Yeni bir CAPTCHA türü çıktığında ücretsiz eğitim
- Kendi makinenizde çalışır, hiçbir şey dışarı çıkmaz
Yukarıda gösterilen her CAPTCHA türü her lisansta vardır. Kapsam bölümüne git
Sadece önce denemek mi istiyorsunuz?
3 günlük ücretsiz bir denemeyle başlayın ve kendi hedeflerinizde her türden 500 CAPTCHA çözün.
İlgili CAPTCHA çözücüler & kılavuzlar
Selenium Python ile reCAPTCHA çözme: uzantı veya SDK
Bir CAPTCHA akışı engellediğinde Selenium size iki güvenilir seçenek sunar: challenge'ı sayfanın içinde bir tarayıcı uzantısının tamamlamasına izin verin ya da betiğinizden çözüp yanıtı enjekte edin. İkisi de CapSkip uygulamasının testinizin erişebildiği bir yerde çalışmasına dayanır; doğru seçim, testin ne kadar kontrole ihtiyaç duyduğuna bağlıdır.
Uzantı yolu. Bir Chrome profili oluşturun, CapSkip uzantısını bu profile kurun ve webdriver.Chrome'u user-data-dir argümanıyla o profil üzerinden başlatın; Firefox için eklenti dosyasıyla driver.install_addon() çağırın. Tarayıcıyı görünür modda (headed) ya da --headless=new ile çalıştırın, çünkü eski headless modu hiçbir uzantı yüklemez. Böylece reCAPTCHA, Turnstile ve GeeTest v3 widget'ları yerinde halledilir ve WebDriverWait'inizin yalnızca formun ilerlemesini beklemesi yeterli olur.
SDK yolu. İstemciyi pip install capskip ile kurun (Python 3.10 veya daha yenisi) ve tüm oturum için, varsayılan olarak 127.0.0.1 adresine ve 8080 portuna yönelen tek bir solver oluşturun. reCAPTCHA için data-sitekey değerini .g-recaptcha öğesinden alın; widget JavaScript ile oluşturuluyorsa reCAPTCHA iframe'inin src adresindeki k değerini kullanın, ardından solver.recaptcha() metodunu driver.current_url ile çağırın. Görünmez bir widget invisible=1 ister; v3 ise version v3 değerini ve sayfanın kontrolü çalıştırırken ilettiği action dizesini ister. g-recaptcha-response alanını execute_script ile ayarlayın, widget bir data-callback belirtiyorsa onu çalıştırın ve iki dakika içinde gönderin. Turnstile için solver.turnstile() metodunu ve gizli cf-turnstile-response alanını kullanın; akışın geri kalanı değişmez.
Python Selenium'da görsel CAPTCHA çözücü adımı için img öğesinden screenshot_as_base64 değerini okuyun, bu dizeyi data:image/png;base64 önekiyle solver.normal() metoduna verin ve sonucu send_keys ile yazın. Görsel URL'sini asla yeniden çekmeyin: görsel CAPTCHA'ların çoğu oturuma bağlıdır ve ikinci bir istek yeni bir resim üretir. reCAPTCHA ve Turnstile için CapSkip'e tarayıcınızın kullandığı proxy'yi (HTTP, HTTPS, SOCKS5 veya SOCKS5h) verin; görsel çözümleri proxy gerektirmez.
İlgili rehberler: undetected-chromedriver ile CAPTCHA çözme · SeleniumBase ile CAPTCHA çözme · Selenium Grid ile CAPTCHA
Python'da Selenium ile reCAPTCHA çözmenin en hızlı yolu nedir?
Selenium projemde uzantıyı mı yoksa SDK'yı mı kullanmalıyım?
Uzantıyı Selenium'un açtığı tarayıcıya nasıl eklerim?
Selenium bir görsel CAPTCHA'yı CapSkip'e nasıl iletir?
Selenium'da tam sayfa kontrolü dahil Cloudflare Turnstile'ı çözebilir mi?
Form, enjekte ettiğim token'ı hâlâ reddediyor. Genellikle sorun nedir?
CapSkip'i C#, Node.js veya Java'daki Selenium'dan çağırabilir miyim?
Çözücü headless Chrome ve Selenium Grid ile çalışır mı?
Selenium test paketiniz her çalıştırmayı tamamlasın
CapSkip'i sürücünüzün yanına kurun, giriş yapın ve uzantıyı ya da SDK'yı seçin. Bir sonraki WebDriver çalıştırmanız CAPTCHA'larını yerel olarak çözer; test paketi neyle karşılaşırsa karşılaşsın aylık fatura sabit kalır.
