Selenium

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.

Windows x64·Yerel olarak çalışır, böylece hiçbir CAPTCHA makinenizden çıkmaz
  • Python, C# ve Node.js
  • Uzantı veya SDK yolu
  • Selenium Grid uyumlu
aylık CAPTCHA sayısı40,000
40.0k250.0k
Başka yerde sayaçlı, 1.000 başına yaklaşık $1.40$56.00
CapSkip Bronze, sabit fiyat$35.00
$21.00cebinizde kalırher ay, bu hacimde

Bir 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

Python
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

  1. 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

  2. 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

  3. Çö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ığı.

ÖzellikCapSkip2Captcha & 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 planHer çözüm faturalandırılır, daha büyük paket daha büyük fatura demek
Challenge nerede çözülürTarayıcılarınızı yöneten makinede veya bir VPS'teUzak sunucularda, çoğu zaman insan çalışanlar tarafından
Görsel CAPTCHA yanıt süresiYaklaşık 0,1 saniye, internet üzerinden gidiş yokBirkaç saniye, üstüne her görsel için bir ağ gidiş-dönüşü
2Captcha için zaten yazdığınız kodYerleşik emülatör sayesinde çalışmaya devam ederO sağlayıcının API'sine ve bakiyesine bağlıdır
Oturum ekran görüntüleri ve challenge verileriKendi makinenizde kalırHer çö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ırlarEk 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 al

Anı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.

Ücretsiz denemeyi başlatın

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?
CapSkip uygulamasını çalışır durumda tutun, pip install capskip ile istemciyi kurun ve data-sitekey değerini .g-recaptcha öğesinden okuyun. solver.recaptcha() metodunu bu anahtar ve driver.current_url ile çağırın; gerektiğinde invisible=1 ya da sayfa action değeriyle birlikte version v3 ekleyin. Dönen kodu execute_script ile g-recaptcha-response alanına yazın, varsa data-callback'i tetikleyin, ardından gönderin.
Selenium projemde uzantıyı mı yoksa SDK'yı mı kullanmalıyım?
Hiç çözüm kodu yazmak istemiyorsanız uzantıyı kullanın: beklemeleriniz işlerken tarayıcı profili her widget'ı kendi başına tamamlar. Testin ne zaman çözüleceğine karar vermesi, sonucu loglaması, yeniden denemesi ya da eski headless modunda çalışması gerekiyorsa SDK'yı kullanın. Uzantıyla başlayıp yoğun akışları daha sonra SDK'ya taşıyabilirsiniz.
Uzantıyı Selenium'un açtığı tarayıcıya nasıl eklerim?
Chrome için uzantıyı Chrome Web Store'dan ayrı bir profile kurun, ardından Selenium'u user-data-dir argümanıyla o profil üzerinden başlatın. Firefox için eklenti dosyasını driver.install_addon() metoduna verin. Tarayıcıyı görünür modda ya da --headless=new ile çalıştırın, çünkü eski headless modu uzantı yükleyemez; testler sürerken de CapSkip uygulamasını açık tutun.
Selenium bir görsel CAPTCHA'yı CapSkip'e nasıl iletir?
CAPTCHA'nın img öğesini bulun, screenshot_as_base64 özelliğini okuyun ve başına data:image/png;base64 ekleyerek solver.normal() metoduna verin. Dönen karakterleri send_keys ile yanıt kutusuna yazın. Ekran görüntüsü almak, görsel URL'sini indirmekten daha iyidir, çünkü site resmi oturumunuza bağlar ve yeni bir istek farklı harfler gösterir.
Selenium'da tam sayfa kontrolü dahil Cloudflare Turnstile'ı çözebilir mi?
Evet. Widget için data-sitekey değerini .cf-turnstile öğesinden okuyun, solver.turnstile() metodunu sayfa URL'siyle çağırın ve göndermeden önce token'ı cf-turnstile-response alanına yazın. Cloudflare bunun yerine tam sayfa kontrolünü gösterdiğinde CapSkip onu da çözer ve token'ın yanında bir userAgent döndürür; geçişin geçerli kalması için bu userAgent'ı o Selenium oturumunun geri kalanında kullanın.
Form, enjekte ettiğim token'ı hâlâ reddediyor. Genellikle sorun nedir?
Vakaların çoğunu üç neden açıklar: token iki dakikadan eskidir, data-callback hiç çağrılmamıştır ya da sayfada birden fazla widget vardır ve form ilk alan yerine g-recaptcha-response-1 alanını gönderir. Göndermeden hemen önce çözün, callback'i tetikleyin ve formunuzun gerçekte hangi alanı gönderdiğini ağ panelinden kontrol edin.
CapSkip'i C#, Node.js veya Java'daki Selenium'dan çağırabilir miyim?
Evet. C# WebDriver projeleri .NET istemcisini dotnet add package CapSkip ile ekler, Node.js'teki selenium-webdriver ise npm install capskip kullanır; bulma, çözme ve enjekte etme adımları Python akışının aynısıdır. Java ve diğer binding'lerin SDK'sı yoktur, bu yüzden yerel HTTP API'yi herhangi bir HTTP istemcisiyle doğrudan çağırırlar.
Çözücü headless Chrome ve Selenium Grid ile çalışır mı?
SDK yolu her tarayıcı modunda çalışır, çünkü çözüm CapSkip'in içinde yapılır ve testin yalnızca onun host ve portuna erişmesi gerekir. Grid'de bu işleri basitleştirir: çözücüyü node değil, test betiği çağırır. Uzantı yolu ise görünür modda Chrome ya da yeni headless modunu gerektirir.

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.