.NET / C# SDK

C# CAPTCHA Çözücü: Asenkron .NET Kodu, Selenium ve Playwright için

Tek bir NuGet paketine referans verin, bir token'ı ya da görsel CAPTCHA'nın metnini await ile bekleyin ve işi, kontrolünüzdeki bir Windows PC'de veya sunucuda CapSkip'e bırakın; .NET kodunuzun ne sıklıkla istekte bulunduğunu ölçen bir sayaç yok.

Windows x64·Yerel olarak çalışır, böylece hiçbir CAPTCHA makinenizden çıkmaz
  • MIT lisanslı NuGet SDK
  • .NET Standard 2.0
  • Sabit aylık lisans
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 .NET çözümüne C# CAPTCHA çözücü eklemek, herhangi bir bağımlılığı eklemek kadar sıradan olmalı ve CapSkip ile tam olarak öyle: dotnet add package CapSkip komutunu çalıştırın, bir CapSkipClient oluşturun ve yanıtı await ile bekleyin. Paketin kendisi ince, MIT lisanslı bir sarmalayıcıdır. Asıl işi, Windows'u nerede tutuyorsanız (bir iş istasyonu, bulut VPS veya özel sunucu) oraya kurulan CapSkip masaüstü uygulaması yapar; böylece doğrulamalar hiçbir zaman uzak bir çözüm çiftliğine gitmez.

Her CAPTCHA ailesinin kendi await edilebilir metodu vardır. RecaptchaAsync, Google widget'ının onay kutulu, görünmez, v3 ve Enterprise türlerini alır; TurnstileAsync hem Cloudflare widget'larını hem de tam sayfa doğrulama ekranlarını yönetir; GeetestAsync yeni bir GeeTest v3 gt ve challenge çiftini kabul eder; AltchaAsync, CapyAsync, CaptchaFoxAsync ve FriendlyCaptchaAsync de geri kalanını kapsar. Tek ihtiyacınız C# ile bir CAPTCHA okuyucuysa, NormalAsync bozuk bir metin görselini yaklaşık 0,1 saniyede karakterlere dönüştürür.

İstemci .NET Standard 2.0'ı hedeflediği için tek bir referans; bir .NET 8 worker'ına, bir .NET Framework 4.6.1 WinForms aracına ve bir Selenium test projesine aynı şekilde hizmet eder. Lisans, $35'ten başlayan sabit aylık bir aboneliktir ve zaten 2Captcha veya CapSolver'a bağlı bir çözüm o istemciyi koruyabilir: CapSkip uygulaması ona yerel olarak yanıt verir.

İki giriş yolu, tek motor. NuGet SDK ile sıfırdan başlayın ya da çalışan bir 2Captcha veya CapSolver .NET istemcisini olduğu gibi bırakın: CapSkip içinde o servisin emülatörünü açıp hosts dosyasına ekleyin, istekleri artık sizin makinenizde çözülsün. Her iki yol da aynı sayaçsız lisansa çıkar. API referansına göz atın

Bu .NET CAPTCHA çözücü C# kodunuza neler kazandırır

İptal destekli Task tabanlı metotlar

Her çözüm bir SolveResult Task'ı döndürür ve bir CancellationToken kabul eder; böylece duran bir host ya da iptal edilen bir ASP.NET Core isteği, bekleyen bir çözümü temiz biçimde bırakabilir.

Framework 4.6.1'den .NET 9'a tek referans

.NET Standard 2.0'a karşı derlenen aynı paket; .NET 6 ile 9 arası sürümlerde, .NET Core 2.0 ve sonrasında ve yaşlanan .NET Framework 4.6.1 masaüstü araçlarında yüklenir.

Sabit fiyatla Task.WhenAll

Task.WhenAll ya da SemaphoreSlim ile sınırlandırılmış bir döngüyle elli çözümü aynı anda başlatın. Fiyat değişmez; eşzamanlılığı faturanız değil, CapSkip'i çalıştıran makine sınırlar.

Tesseract yerine CAPTCHA için eğitilmiş OCR

NormalAsync görseli diskteki bir dosya yolu, bir URL veya base64 metin olarak alır ve karakterlerini yaklaşık 0,1 saniyede döndürür. Genel amaçlı OCR'ın tökezlediği binlerce çarpık CAPTCHA stilini okur.

Selenium, Playwright for .NET, PuppeteerSharp

SDK tarayıcınızı hiçbir zaman yönetmez. Sitekey'i FindElement veya GetAttributeAsync ile okuyun, token'ı await ile bekleyin, ardından gönder düğmesine tıklamadan önce IJavaScriptExecutor veya EvaluateAsync ile sayfaya enjekte edin.

Tipli sonuçlar ve tipli bir istisna ağacı

SolveResult; Code, UserAgent ve GeeTest için Challenge, Validate ve Seccode değerlerini özellik olarak sunar. NetworkException, TimeoutException, ValidationException ve ApiException ise CapSkipError'dan türer.

.NET projenize uyan yolu seçin

C#
// dotnet add package CapSkip
using CapSkip;

var solver = new CapSkipClient(host: "127.0.0.1", port: 8080);

var result = await solver.RecaptchaAsync(
    "YOUR_SITEKEY",
    "https://example.com/page-with-recaptcha");

Console.WriteLine(result.Code); // token

RecaptchaAsync'i site anahtarı ve sayfa URL'siyle await edin; ardından result.Code, form gönderiminizin veya tarayıcı oturumunuzun bir sonraki adımda göndereceği token'ı tutar.

Elle yapılan tarayıcı işleri için uzantı

Hata ayıklarken bir kayıt veya ödeme akışını kendiniz mi adım adım geçiyorsunuz? Chrome veya Firefox eklentisi her CAPTCHA'yı fark eder ve çalışan uygulamaya çözdürür; tek satır C# yazmanız gerekmez.

Bir NuGet CAPTCHA çözücü paketi

Herhangi bir .NET projesine ekleyin ve güçlü tipli async metotları çağırın. Python, Node.js veya PHP kullanan ekipler için aynı çözüm motoru üzerine kurulu kardeş SDK'lar da mevcut.

Mevcut .NET istemcileri için yerel API

2Captcha veya benzeri bir servis için yazılmış bir C# istemcisi her zamanki isteklerini göndermeye devam eder. CapSkip bu protokolü kendi ağınızda yanıtlar; böylece hiçbir şeyi yeniden yazmanız gerekmez.

Bir test projesini canlı bir reCAPTCHA sayfasına yöneltin

CapSkip üretim koduna girmeden önce, deneme amaçlı bir konsol uygulamasını barındırdığımız reCAPTCHA v2 demosuna yönlendirin. Demo gerçek widget'ı yükler; böylece RecaptchaAsync'in gerçekten çalışan bir token getirdiğini izleyebilirsiniz.

NuGet geri yüklemesinden ilk çözülen CAPTCHA'ya

  1. CapSkip'i bir Windows makinede çalıştırın

    CapSkip'i .NET kodunuzun erişebildiği herhangi bir Windows iş istasyonuna, VPS'e veya özel sunucuya kurun, ardından siz geliştirirken arka planda çalışır halde bırakın. Yükleyiciyi indirin

  2. Bir planı veya denemeyi etkinleştirin

    Bronze, Silver veya Gold aboneliği satın alın ya da 500 çözümlük 3 günlük ücretsiz denemeyi başlatın ve uygulamayı etkinleştirmek için e-postayla gelen giriş bilgilerini girin. Ücretsiz denemeyi başlatın

  3. Paketi ekleyin ve await edin

    dotnet add package CapSkip komutunu çalıştırın, CapSkipClient'ı uygulamada gösterilen host ve porta yönlendirin ve CAPTCHA türünüze uygun metodu bir konsol uygulamasından, servisten veya testten await edin. Tüm SDK'ları görün

C# kodunda CapSkip ile 2Captcha ve CapSolver karşılaştırması

.NET servisleriniz yüksek hacimde çalışmaya başladığında, yerel ve sabit fiyatlı bir çözücünün kullanım başına ücretlendiren bir bulut API'sine karşı nasıl durduğu.

ÖzellikCapSkip2Captcha / CapSolver
Ne için ödeme yaparsınız$35'ten başlayan tek aylık abonelik, çözüm başına ücret yokHer çözüm, 1.000 başına ücretlendirilir, kullandıkça ödersiniz
CAPTCHA nerede çözülürCapSkip içinde, size ait Windows donanımındaSağlayıcının sunucularında, bazen insan çalışanlar tarafından
Yoğun bir ayın ardından gelen faturaKaç görevi await ederseniz edin değişmezHer çözümle ve her yeniden denemeyle artar
Doğrulamayı kim görürBaşka kimse: ağınızın içinde kalırGönderdiğiniz her doğrulama üçüncü bir tarafa ulaşır
Paralel çözümlerCPU ve belleğinizin kaldırabildiği kadar threadEk işlem kapasitesi genellikle ek ücret demektir
.NET'e entegrasyonNuGet paketi ya da emülasyonla eski istemcinizi korumaSağlayıcının kendi istemci kütüphanesi
Görsel CAPTCHA yanıt süresiYaklaşık 0,1 saniye, uzak kuyruk yokHer görsel internet üzerinden yüklenir, kuyruğa alınır ve sorgulanır

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

C# ile CAPTCHA nasıl çözülür: HttpClient'tan Hangfire işlerine

.NET kodunda bir CAPTCHA genellikle üç yerden birinde karşınıza çıkar: form gönderen bir HttpClient, gerçek bir tarayıcıyı yöneten bir Selenium veya Playwright oturumu ya da kimsenin başında durmadığı bir arka plan işi. Tek bir CapSkipClient örneği üçüne de hizmet eder; yalnızca yanıtla ne yaptığınız değişir.

HttpClient işlerinde, o formun oturum çerezlerini kullanarak site anahtarını toplayın veya görseli indirin, uygun metodu await edin, ardından result.Code'u POST isteğinizin FormUrlEncodedContent'ine, hedef formun okuduğu alana (genellikle g-recaptcha-response) ekleyin. Bir Cloudflare doğrulama sayfası ayrıca data ve pagedata değerlerini seçeneklerde ister; sonraki istek de result.UserAgent'ı taşımalıdır.

Tarayıcı oturumunda SDK sürücüye dokunmaz. Testiniz anahtarı elementten okur, RecaptchaAsync veya TurnstileAsync'i driver.Url ile await eder, token'ı IJavaScriptExecutor veya EvaluateAsync ile geri yazar ve formu gönderir. Bu token'lar yalnızca birkaç dakika geçerli kalır; bu yüzden onları uzun bir testin başında değil, gönderme adımından hemen önce isteyin.

Gözetimsiz işler, sabit lisansın kendini asıl amorti ettiği yerdir. Bir Hangfire işi veya barındırılan bir worker, başarısız bir çözümü yeniden deneyebilir, gece boyunca bir zamanlamaya göre çalışabilir ve Task.WhenAll ile paralel yayılabilir; kimsenin bakiye yüklemesine gerek kalmaz. Erişilemeyen bir uygulamayı, reddedilen bir seçeneği veya bir zaman aşımını loglamak için CapSkipError'ı bir kez yakalayın ve işin CancellationToken'ını her çağrıya iletin; böylece kapanmakta olan bir host bekleyen bir çözümde asılı kalmaz.

CapSolver veya 2Captcha'dan ayrılıp .NET istemcisini korumak mı istiyorsunuz? CapSkip'in çalıştığı makinede o servisin emülatörünü etkinleştirin ve uygulamadaki hosts dosyası seçeneğini kullanın. Mevcut C# kodunuza dokunulmaz ve zaten gönderdiği CAPTCHA türleri yerel olarak yanıtlanır.

İlgili rehberler: C# ile reCAPTCHA v2 · C# ile Turnstile challenge sayfası · Hangfire ile CAPTCHA işleri

.NET'te CAPTCHA çözmek için hangi NuGet paketini kurmalıyım?
CapSkip adlı paketi kurun; ya dotnet add package CapSkip komutuyla ya da Visual Studio Package Manager Console'da Install-Package CapSkip ile. Paket MIT lisanslıdır ve CapSkip uygulamasının yerel API'sini, RecaptchaAsync'ten NormalAsync'e kadar her CAPTCHA türü için bir tane olmak üzere async metotlarla sarar.
Paketin tek bir derlemesi hem .NET Framework 4.6.1'de hem de .NET 8'de çalışır mı?
Evet. Kütüphane, her iki çalışma ortamının da kullandığı .NET Standard 2.0'ı hedefler; .NET 6, 7 ve 9 ile .NET Core 2.0 ve sonrası da bunu kullanır. Eski hedeflerde NuGet, System.Text.Json'ı sizin için geri yükler; yani elle eklemeniz gereken ek bir referans yoktur.
Çözülmüş bir reCAPTCHA token'ını C# ile bir Selenium WebDriver sayfasına nasıl yerleştiririm?
Widget'ı FindElement ile bulun, sitekey'ini okuyun ve RecaptchaAsync'i bu anahtar ve driver.Url ile await edin. Ardından gizli g-recaptcha-response alanını IJavaScriptExecutor.ExecuteScript ile doldurun ve formu gönderin. Görünmez, Enterprise veya v3 widget'ları için bir seçenek sözlüğü iletin: invisible ya da enterprise değerini 1 yapın veya version değerini v3 yapıp sayfanın action değerini ekleyin.
.NET SDK, Turnstile kutusunun yanı sıra Cloudflare'in tam sayfa kontrolünü de çözer mi?
Evet. Yalnızca kutu için TurnstileAsync'i sitekey ve URL ile await edin, ardından result.Code'u cf-turnstile-response alanında gönderin. Tam sayfa kontrolü iki ek girdi ister: o sayfanın data ve pagedata dizelerini seçenek sözlüğüne kopyalayın ve bir sonraki isteğinizi result.UserAgent'ta dönen tarayıcı kimliğiyle yapın.
WinForms'ta veya bir konsol aracında async metotları bloklamak güvenli mi?
Bir konsol uygulamasında veya arka plan thread'inde, dönen Task üzerinde GetAwaiter().GetResult() çağırmak sorunsuz çalışır. WinForms UI thread'inde veya ASP.NET Core içinde ise await'i tercih edin; çünkü orada bloklamak, çözüm sürerken pencereyi dondurur ya da bir istek thread'ini meşgul eder.
.NET'te yavaş bir çözümü nasıl iptal ederim veya süre sınırını nasıl değiştiririm?
Herhangi bir metoda bir CancellationToken iletin; onu iptal etmek hem gönderimi hem de sorgulamayı durdurur. CapSkipClient yapıcısı ayrıca görsel CAPTCHA'lar için 120 saniye olan defaultTimeout'u ve reCAPTCHA ile diğer tarayıcı tabanlı türler için 300 saniye olan recaptchaTimeout'u da alır. Sınırını aşan bir çözüm TimeoutException fırlatır.
C# ile yazılmış bir CapSolver veya 2Captcha istemcisi hiç değiştirilmeden çalışmaya devam edebilir mi?
Evet. CapSkip uygulamasında o servise karşılık gelen emülatörü etkinleştirin, ardından aynı ekrandan hosts dosyasına ekleyin. İstemci her zaman kullandığı adresi çağırmaya devam eder, desteklenen CAPTCHA türleri makinenizde çözülür ve çözüm başına ücretler sona erer.
Tesseract, C# için CAPTCHA okuyucu olarak yeterli mi?
Nadiren. Tesseract temiz basılı metin için ayarlanmıştır, CAPTCHA görselleri ise bilerek bozulur; bu yüzden onları sık sık yanlış okur. NormalAsync görseli CapSkip'e gönderir; CapSkip binlerce CAPTCHA stilini yaklaşık 0,1 saniyede okur ve iyi okunmayan yeni bir stil ücretsiz olarak eğitilebilir.

Bir sonraki .NET derlemenize CapSkip'i ekleyin

Uygulamayı kurun, NuGet paketini ekleyin ve ilk token'ınızı dakikalar içinde alın. Bundan sonra C# kodunuzun istediği her çözüm, hacim ne olursa olsun aynı aylık ücrete dahildir.