.NET / C# SDK

C#-Captcha-Löser für asynchronen .NET-Code, Selenium und Playwright

Binden Sie ein einziges NuGet-Paket ein, warten Sie per await auf ein Token oder den Text eines Bild-Captchas und überlassen Sie die Arbeit CapSkip auf einem Windows-PC oder Server unter Ihrer Kontrolle, ohne Zähler dafür, wie oft Ihr .NET-Code anfragt.

Windows x64·Läuft lokal, sodass kein Captcha Ihren Rechner verlässt
  • NuGet-SDK unter MIT-Lizenz
  • .NET Standard 2.0
  • Monatliche Pauschallizenz
Captchas pro Monat40,000
40.0k250.0k
Anderswo abgerechnet, ca. $1.40 pro 1.000$56.00
CapSkip Bronze, pauschal$35.00
$21.00bleibt in Ihrer Taschejeden Monat, bei diesem Volumen

Einen C#-Captcha-Solver in eine .NET-Solution aufzunehmen, sollte sich wie jede andere Abhängigkeit anfühlen, und mit CapSkip ist es genau so: Führen Sie dotnet add package CapSkip aus, erstellen Sie einen CapSkipClient und warten Sie per await auf die Antwort. Das Paket selbst ist ein schlanker Wrapper unter MIT-Lizenz. Die eigentliche Arbeit erledigt die CapSkip-Desktop-App, installiert dort, wo Ihr Windows läuft (auf einer Workstation, einem Cloud-VPS oder einem dedizierten Server), sodass Challenges nie zu einer entfernten Lösefarm wandern.

Jede Captcha-Familie hat ihre eigene awaitbare Methode. RecaptchaAsync übernimmt die Checkbox-, Invisible-, v3- und Enterprise-Varianten des Google-Widgets; TurnstileAsync bewältigt Cloudflare-Widgets ebenso wie komplette Challenge-Seiten; GeetestAsync nimmt ein frisches GeeTest-v3-Paar aus gt und challenge entgegen; AltchaAsync, CapyAsync, CaptchaFoxAsync, FriendlyCaptchaAsync und AmazonWafAsync decken den Rest ab. Brauchen Sie nur einen Captcha-Leser in C#, wandelt NormalAsync ein verzerrtes Textbild in etwa 0,1 Sekunden in Zeichen um.

Da der Client auf .NET Standard 2.0 abzielt, bedient eine einzige Referenz gleichermaßen einen .NET-8-Worker, ein WinForms-Tool unter .NET Framework 4.6.1 und ein Selenium-Testprojekt. Die Lizenz ist ein monatliches Pauschalabonnement ab $35, und eine Solution, die bereits an 2Captcha oder CapSolver angebunden ist, kann diesen Client behalten: Die CapSkip-App beantwortet ihn lokal.

Zwei Wege hinein, eine Engine. Beginnen Sie neu mit dem NuGet-SDK, oder lassen Sie einen funktionierenden .NET-Client für 2Captcha oder CapSolver genau so, wie er ist: Aktivieren Sie in CapSkip den Emulator dieses Dienstes und tragen Sie ihn in die Hosts-Datei ein, dann werden seine Anfragen stattdessen auf Ihrem Rechner gelöst. Beide Wege führen zur selben Lizenz ohne Verbrauchsabrechnung. Zur API-Referenz

Was dieser .NET-Captcha-Solver Ihrem C#-Code bietet

Task-basierte Methoden mit Abbruch

Jede Lösung liefert einen Task von SolveResult und akzeptiert ein CancellationToken, sodass ein herunterfahrender Host oder ein abgebrochener ASP.NET-Core-Request eine laufende Lösung sauber verwerfen kann.

Eine Referenz von Framework 4.6.1 bis .NET 9

Gegen .NET Standard 2.0 kompiliert, lädt dasselbe Paket in .NET 6 bis 9, in .NET Core 2.0 und neuer sowie in betagten Desktop-Tools unter .NET Framework 4.6.1.

Task.WhenAll zum Pauschalpreis

Starten Sie fünfzig Lösungen parallel mit Task.WhenAll oder einer per SemaphoreSlim gedrosselten Schleife. Der Preis bleibt gleich, die Parallelität begrenzt also der Rechner, auf dem CapSkip läuft, und nicht Ihre Rechnung.

Captcha-trainierte OCR statt Tesseract

NormalAsync nimmt das Bild als Pfad auf der Festplatte, als URL oder als Base64-Text entgegen und liefert seine Zeichen in etwa 0,1 Sekunden. Es liest Tausende verzerrter Captcha-Stile, an denen allgemeine OCR scheitert.

Selenium, Playwright für .NET, PuppeteerSharp

Das SDK steuert nie Ihren Browser. Lesen Sie den Sitekey mit FindElement oder GetAttributeAsync aus, warten Sie per await auf das Token und injizieren Sie es dann über IJavaScriptExecutor oder EvaluateAsync, bevor Sie auf Absenden klicken.

Typisierte Ergebnisse und Exception-Hierarchie

SolveResult stellt Code, UserAgent sowie die GeeTest-Werte Challenge, Validate und Seccode als Properties bereit, während NetworkException, TimeoutException, ValidationException und ApiException alle von CapSkipError abgeleitet sind.

Wählen Sie den Weg, der zu Ihrem .NET-Projekt passt

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

Rufen Sie RecaptchaAsync mit dem Site Key und der Seiten-URL per await auf; result.Code enthält dann das Token, das Ihr Formular-POST oder Ihre Browsersitzung als Nächstes absendet.

Erweiterung für manuelle Browserarbeit

Gehen Sie beim Debuggen selbst eine Registrierung oder einen Checkout durch? Das Add-on für Chrome oder Firefox erkennt jedes Captcha und lässt es von der laufenden App lösen, ganz ohne eine Zeile C#.

Ein NuGet-Paket als Captcha-Solver

Fügen Sie es einem beliebigen .NET-Projekt hinzu und rufen Sie stark typisierte async-Methoden auf. Teams mit Python, Node.js oder PHP erhalten Schwester-SDKs, die auf derselben Lösungs-Engine aufbauen.

Lokale API für bestehende .NET-Clients

Ein C#-Client, der für 2Captcha oder einen ähnlichen Dienst geschrieben wurde, sendet weiter seine gewohnten Anfragen. CapSkip beantwortet dieses Protokoll in Ihrem eigenen Netzwerk, es muss also nichts umgeschrieben werden.

Testprojekt auf eine echte reCAPTCHA-Seite richten

Bevor CapSkip in den Produktivcode wandert, richten Sie eine Konsolen-App zum Ausprobieren auf unsere gehostete reCAPTCHA-v2-Demo. Sie lädt das echte Widget, sodass Sie zusehen können, wie RecaptchaAsync ein Token zurückbringt, das tatsächlich funktioniert.

Vom NuGet-Restore zum ersten gelösten Captcha

  1. CapSkip auf einem Windows-Rechner starten

    Installieren Sie CapSkip auf einer beliebigen Windows-Workstation, einem VPS oder einem dedizierten Server, den Ihr .NET-Code erreicht, und lassen Sie es im Hintergrund laufen, während Sie entwickeln. Den Installer herunterladen

  2. Tarif oder Testversion aktivieren

    Kaufen Sie ein Bronze-, Silver- oder Gold-Abonnement oder sichern Sie sich die kostenlose 3-tägige Testversion mit 500 Lösungen, und geben Sie die per E-Mail erhaltenen Zugangsdaten in der App ein, um sie zu aktivieren. Starten Sie den kostenlosen Test

  3. Paket einbinden, await aufrufen

    Führen Sie dotnet add package CapSkip aus, richten Sie CapSkipClient auf den Host und Port, die die App anzeigt, und rufen Sie per await die Methode für Ihren Captcha-Typ auf, aus einer Konsolen-App, einem Dienst oder einem Test. Alle SDKs ansehen

CapSkip vs. 2Captcha und CapSolver aus C#-Code

Wie sich ein lokaler Solver zum Pauschalpreis gegen eine nach Verbrauch abgerechnete Cloud-API schlägt, sobald Ihre .NET-Dienste mit hohem Volumen laufen.

FunktionCapSkip2Captcha / CapSolver
Wofür Sie bezahlenEin Abonnement ab $35 im Monat, nichts pro LösungJede Lösung, abgerechnet pro 1.000, nach Verbrauch
Wo das Captcha gelöst wirdIn CapSkip, auf Windows-Hardware in Ihrem BesitzAuf den Servern des Anbieters, teils von menschlichen Arbeitskräften
Rechnung nach einem arbeitsreichen MonatUnverändert, egal auf wie viele Tasks Sie gewartet habenSteigt mit jeder Lösung und jedem Wiederholungsversuch
Wer die Challenge siehtNiemand sonst: Alles bleibt in Ihrem NetzwerkEin Drittanbieter erhält jede Challenge, die Sie senden
Parallele LösungenSo viele Threads, wie CPU und Arbeitsspeicher tragenMehr Durchsatz kostet meist extra
Einbindung in .NETNuGet-Paket, oder Ihr alter Client bleibt dank EmulationDie eigene Client-Bibliothek des Anbieters
Bearbeitungszeit für Bild-CaptchasEtwa 0,1 Sekunden, ohne entfernte WarteschlangeJedes Bild hochgeladen, eingereiht und über das Internet abgefragt

Preise

Schluss mit der Abrechnung pro Lösung

Wählen Sie Ihre Lizenz

Bronze-Lizenz

$35/ Monat

Bronze abonnieren

Sofortige Lizenzaktivierung

Monatliche Abrechnung. Kündigen Sie jederzeit in Ihrem Konto.

Gleiche Funktionen. Mehr Rechner, mehr Durchsatz.

Jeder Rechner löst so schnell, wie es seine CPU und sein Arbeitsspeicher erlauben. Mehr Rechner bedeuten mehr gleichzeitige Threads: Silver löst doppelt so viele Captchas gleichzeitig, Gold dreimal so viele.

  • Unbegrenztes Lösen, kein Tageslimit
  • Unbegrenzte Threads, die Geschwindigkeit skaliert mit Ihrer Hardware
  • 90% bis 100% Erkennungsgenauigkeit
  • Direkter Ersatz für die APIs der großen Lösungsdienste
  • Funktioniert mit fast jedem Tool, ohne Programmieren
  • REST-API, SDKs und eine Browser-Erweiterung
  • Kostenloses Training, wenn ein neuer Captcha-Typ auftaucht
  • Läuft auf Ihrem Rechner, nichts verlässt ihn

Jeder oben gezeigte Captcha-Typ ist in jeder Lizenz enthalten. Zur Übersicht der Typen

Möchten Sie es erst ausprobieren?

Starten Sie mit einem kostenlosen 3-tägigen Test und lösen Sie 500 Captchas beliebigen Typs auf Ihren eigenen Zielen.

Starten Sie den kostenlosen Test

Captchas in C# lösen, von HttpClient bis zu Hangfire-Jobs

In .NET-Code taucht ein Captcha meist an einer von drei Stellen auf: in einem HttpClient, der ein Formular absendet, in einer Selenium- oder Playwright-Sitzung, die einen echten Browser steuert, oder in einem Hintergrundjob, bei dem niemand zusieht. Eine einzige CapSkipClient-Instanz bedient alle drei; nur was Sie mit der Antwort tun, unterscheidet sich.

Bei der Arbeit mit HttpClient holen Sie den Site Key oder laden das Bild mit den Sitzungscookies dieses Formulars herunter, rufen per await die passende Methode auf und fügen result.Code dann dem FormUrlEncodedContent Ihres POST hinzu, und zwar in dem Feld, das das Zielformular ausliest, typischerweise g-recaptcha-response. Eine Cloudflare-Challenge-Seite verlangt zusätzlich ihre Werte data und pagedata in den Optionen, und die Folgeanfrage sollte result.UserAgent mitführen.

In einer Browsersitzung hält sich das SDK vom Treiber fern. Ihr Test liest den Key aus dem Element, ruft RecaptchaAsync oder TurnstileAsync mit driver.Url per await auf, schreibt das Token über IJavaScriptExecutor oder EvaluateAsync zurück und sendet ab. Diese Tokens sind nur wenige Minuten gültig, fordern Sie sie also direkt vor dem Absenden an, nicht am Anfang eines langen Tests.

Bei unbeaufsichtigten Abläufen zahlt sich eine Pauschallizenz richtig aus. Ein Hangfire-Job oder ein Hosted Worker kann eine fehlgeschlagene Lösung wiederholen, nachts nach Zeitplan laufen und mit Task.WhenAll parallelisieren, ohne dass jemand ein Guthaben aufladen muss. Fangen Sie CapSkipError einmal ab, um eine nicht erreichbare App, eine abgelehnte Option oder einen Timeout zu protokollieren, und reichen Sie das CancellationToken des Jobs an jeden Aufruf weiter, damit ein herunterfahrender Host nie an einer ausstehenden Lösung hängen bleibt.

Sie wechseln weg von CapSolver oder 2Captcha, wollen aber den .NET-Client behalten? Aktivieren Sie auf dem Rechner mit CapSkip den Emulator dieses Dienstes und nutzen Sie die Hosts-Datei-Option in der App. Der bestehende C#-Code bleibt unangetastet, und die Captcha-Typen, die er bereits sendet, werden lokal beantwortet.

Weitere Anleitungen: reCAPTCHA v2 in C# · Turnstile-Challenge-Seite in C# · Captcha-Jobs mit Hangfire

Welches NuGet-Paket sollte ich installieren, um Captchas in .NET zu lösen?
Installieren Sie das Paket namens CapSkip, entweder mit dotnet add package CapSkip oder mit Install-Package CapSkip in der Paket-Manager-Konsole von Visual Studio. Es steht unter MIT-Lizenz und kapselt die lokale API der CapSkip-App in async-Methoden, eine pro Captcha-Typ, von RecaptchaAsync bis NormalAsync.
Funktioniert ein und derselbe Build des Pakets unter .NET Framework 4.6.1 und unter .NET 8?
Ja. Die Bibliothek zielt auf .NET Standard 2.0, das beide Runtimes nutzen können, ebenso wie .NET 6, 7 und 9 sowie .NET Core 2.0 oder neuer. Auf den älteren Zielen stellt NuGet System.Text.Json automatisch wieder her, Sie müssen also nichts zusätzlich von Hand referenzieren.
Wie setze ich ein gelöstes reCAPTCHA-Token in C# in eine Selenium-WebDriver-Seite ein?
Suchen Sie das Widget mit FindElement, lesen Sie seinen Sitekey aus und rufen Sie RecaptchaAsync mit diesem Key und driver.Url per await auf. Setzen Sie dann das versteckte Feld g-recaptcha-response über IJavaScriptExecutor.ExecuteScript und senden Sie ab. Bei Invisible-, Enterprise- oder v3-Widgets übergeben Sie ein Options-Dictionary mit invisible oder enterprise auf 1, oder mit version auf v3 plus der action der Seite.
Bewältigt das .NET-SDK neben der Turnstile-Box auch die ganzseitige Prüfung von Cloudflare?
Ja. Für die Box allein rufen Sie TurnstileAsync mit Sitekey und URL per await auf und senden result.Code im Feld cf-turnstile-response. Eine ganzseitige Prüfung braucht zwei weitere Eingaben: Kopieren Sie die Strings data und pagedata dieser Seite in das Options-Dictionary, und stellen Sie Ihre nächste Anfrage mit der Browser-Identität, die in result.UserAgent zurückkommt.
Ist es sicher, in WinForms oder einem Konsolentool blockierend auf die async-Methoden zu warten?
In einer Konsolen-App oder einem Hintergrund-Thread funktioniert der Aufruf GetAwaiter().GetResult() auf dem zurückgegebenen Task problemlos. Auf einem WinForms-UI-Thread oder in ASP.NET Core sollten Sie await bevorzugen, denn dort friert Blockieren das Fenster ein oder belegt einen Request-Thread, solange die Lösung läuft.
Wie breche ich in .NET eine langsame Lösung ab oder ändere ihr Zeitlimit?
Übergeben Sie einer beliebigen Methode ein CancellationToken; wird es abgebrochen, stoppen sowohl die Übermittlung als auch das Polling. Der CapSkipClient-Konstruktor nimmt außerdem defaultTimeout entgegen, 120 Sekunden für Bild-Captchas, und recaptchaTimeout, 300 Sekunden für reCAPTCHA und die anderen browserbasierten Typen. Eine Lösung, die ihr Limit überschreitet, wirft eine TimeoutException.
Kann ein in C# geschriebener Client für CapSolver oder 2Captcha unverändert weiterlaufen?
Ja. Aktivieren Sie in der CapSkip-App den Emulator, der zu diesem Dienst passt, und tragen Sie ihn auf demselben Bildschirm in die Hosts-Datei ein. Der Client ruft weiter die Adresse auf, die er immer verwendet hat, die unterstützten Captcha-Typen werden auf Ihrem Rechner gelöst, und die Gebühren pro Lösung entfallen.
Taugt Tesseract als Captcha-Leser in C#?
Selten. Tesseract ist auf sauberen Drucktext abgestimmt, Captcha-Bilder sind jedoch absichtlich verzerrt, daher liest es sie oft falsch. NormalAsync schickt das Bild an CapSkip, das Tausende Captcha-Stile in etwa 0,1 Sekunden liest, und ein neuer Stil, der schlecht erkannt wird, kann kostenlos trainiert werden.

CapSkip in Ihren nächsten .NET-Build einbinden

Installieren Sie die App, fügen Sie das NuGet-Paket hinzu und erhalten Sie Ihr erstes Token innerhalb weniger Minuten. Ab dann ist jede Lösung, die Ihr C#-Code anfordert, durch denselben Monatspreis abgedeckt, ganz gleich bei welchem Volumen.