PHP SDK

PHP-Captcha-Löser für Laravel, Symfony und reines cURL

Ein einziges Composer-Paket verwandelt reCAPTCHA-, Turnstile- und GeeTest-Prüfungen oder den Text in einem Captcha-Bild in Werte, die Ihr cURL-, Guzzle- oder Laravel-Code absenden kann. CapSkip übernimmt das Lösen auf Hardware unter Ihrer Kontrolle.

Windows x64·Läuft lokal, sodass kein Captcha Ihren Rechner verlässt
  • PHP 8.0 und neuer
  • Nur curl und json
  • Queue-Worker ohne Zähler
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

Jeder PHP-Captcha-Solver existiert für einen unangenehmen Moment: Ihr cURL-Handle oder Guzzle-Client fordert eine Seite an und bekommt statt des Markups, das er parsen soll, eine Challenge zurück. Installieren Sie capskip/capskip mit Composer, und diese Challenge geht an die CapSkip-Desktop-App, die auf Windows-Hardware läuft, die Sie besitzen oder mieten. Sie liefert ein reCAPTCHA- oder Turnstile-Token, eine GeeTest-v3-Antwort oder den Text eines Bildes zurück, bereit für Ihren nächsten POST.

Der Client hält Ihren vendor-Ordner schlank: Er verlangt PHP 8.0 oder neuer mit den Erweiterungen curl und json und installiert sonst nichts. Jede Challenge-Familie hat ihre eigene Methode: recaptcha() übernimmt v2, v3 und Enterprise, turnstile() deckt sowohl das eingebettete Widget als auch die ganzseitige Prüfung von Cloudflare ab, geetest() nimmt den v3-Slider, normal() liest verzerrten Text in etwa 0,1 Sekunden, und altcha(), capy(), captchafox(), friendlyCaptcha() und amazonWaf() vervollständigen die Liste.

Ihr PHP kann weiterlaufen, wo es heute läuft. Setzen Sie die host-Option des Clients auf den Rechner mit CapSkip, und jeder Server, Container oder Cron-Rechner, der ihn erreicht, löst über eine einzige Pauschallizenz ab $35 im Monat. Nichts auf der Rechnung hängt davon ab, wie viele Formulare Sie absenden.

Halten Sie Captcha-Arbeit aus dem Request-Zyklus heraus. Jede Lösung hält ihren PHP-Prozess fest, bis die Antwort eintrifft, lagern Sie sie also in einen Queue-Job oder ein Cron-Skript aus und lassen Sie Ihre Seiten in normalem Tempo antworten. Starten Sie so viele Worker, wie der Solver-Rechner versorgen kann: Der Tarif ist pauschal, zusätzliche Prozesse erhöhen die Rechnung also nicht. Zum Laravel-Queue-Leitfaden

Gebaut für Composer-Projekte und PHP-Worker

Zwei PHP-Erweiterungen, sonst nichts

Das Paket braucht PHP 8.0 oder neuer mit aktiviertem curl und json. Es fügt keine weitere Laufzeitabhängigkeit hinzu und gerät daher nie mit den Versionen in Konflikt, die Ihr Framework bereits in composer.lock festschreibt.

Alle Queue-Worker mit einer Lizenz

Artisan-Befehle, Cron-Läufe und langlebige Worker schöpfen alle aus demselben Tarif ohne Verbrauchsabrechnung. Mehr Prozesse steigern den Durchsatz bis zu dem, was der Rechner verkraftet, während der Monatspreis gleich bleibt.

Zu Hause in Laravel und Symfony

Registrieren Sie eine einzige CapSkip-Instanz als Singleton in einem Laravel-Service-Provider oder als Symfony-Service. Da es keine Framework-Bindung gibt, nutzt ein reines PHP-Skript sie genauso leicht.

Antworten passend für Guzzle und cURL

Nehmen Sie $result['code'] und setzen Sie es in Guzzle-form_params oder Ihr CURLOPT_POSTFIELDS-Array ein, unter dem Feldnamen, den das Zielformular absendet, meist g-recaptcha-response.

Passt zu Panther und php-webdriver

Wenn eine Website einen echten Browser erwartet, steuern Sie ihn mit Symfony Panther oder php-webdriver, lassen CapSkip die Challenge lösen und injizieren das zurückgegebene Token in das Formular, bevor Sie auf Absenden klicken.

Blockierende Aufrufe mit 300 Sekunden Limit

Jeder Aufruf ist synchron, und eine reCAPTCHA-Lösung kann standardmäßig bis zu 300 Sekunden lang pollen. Das passt zu CLI-Prozessen und Queue-Jobs weit besser als zu einem Web-Request mit kurzem Zeitlimit.

Drei Wege von einem PHP-Projekt zu CapSkip

PHP
<?php
// composer require capskip/capskip
require 'vendor/autoload.php';

use CapSkip\CapSkip;

$solver = new CapSkip(['host' => '127.0.0.1', 'port' => 8080]);

$result = $solver->recaptcha(
    'YOUR_SITEKEY',
    'https://example.com/page-with-recaptcha'
);

echo $result['code']; // g-recaptcha-response token

Ersetzen Sie YOUR_SITEKEY und die Beispiel-URL durch Ihr Ziel, führen Sie die Datei über die Kommandozeile aus, und sie gibt ein reCAPTCHA-Token für Ihren Formular-POST aus.

Browsererweiterung für manuelle Sitzungen

Wenn Sie sich selbst durch eine Website klicken, etwa beim Testen Ihres eigenen Registrierungsformulars, lässt das Add-on für Chrome oder Firefox die laufende CapSkip-App jede Challenge lösen, ganz ohne PHP.

Das Composer-SDK für Ihren Code

Binden Sie capskip/capskip per require ein und wählen Sie dann in Skripten, Befehlen und Workern die Methode, die zur jeweiligen Challenge passt. Schwester-Clients gibt es für Python, Node.js und .NET, wenn andere Dienste einen brauchen.

Lokale API für geerbten 2Captcha-Code

Eine PHP-Klasse, die rund um die API von 2Captcha oder Anti-Captcha gebaut ist, sendet ihre Anfragen unverändert weiter: Die CapSkip-App versteht diese Formate und antwortet von Ihrem eigenen Rechner aus.

Den PHP-Client an einem echten reCAPTCHA testen

Unsere reCAPTCHA-v2-Demoseite lädt das echte Widget. Richten Sie das Snippet oben darauf, führen Sie es in Ihrem Terminal aus, und ein funktionierendes Token wird ausgegeben, lange bevor Sie es auf eine Produktivseite loslassen.

Von composer require zum ersten Token

  1. Den Solver-Rechner einrichten

    Wählen Sie einen Windows-Desktop oder VPS, den Ihre PHP-Hosts erreichen, und installieren Sie CapSkip dort. Er übernimmt dann das Lösen für jeden Server, Container und Cron-Job, den Sie darauf richten. Den Installer herunterladen

  2. Mit Testversion oder Tarif anmelden

    Nutzen Sie die Zugangsdaten aus der Testversion (500 Lösungen, ein Zeitraum von 3 Tagen, keine Karte nötig) oder aus einem Monatstarif. Jede Stufe schaltet dieselben Captcha-Typen frei. Kostenlose Testversion holen

  3. Paket einbinden und lösen

    Führen Sie composer require capskip/capskip aus, erstellen Sie einen Client mit dem Solver-Host und rufen Sie die Methode für Ihre Challenge aus einem CLI-Skript oder einem Queue-Job auf. Zur API-Dokumentation

Ein lokaler PHP-Solver im Vergleich zu 2Captcha und CapSolver

Wie sich der CapSkip-Composer-Client gegen die Dienste mit Abrechnung pro Lösung schlägt, mit denen viele PHP-Projekte beginnen.

FunktionCapSkip2Captcha / CapSolver
Wofür Sie bezahlenEine Monatsgebühr ab $35, Lösungen werden nie gezähltJede Lösung, bepreist pro 1.000
Wo Challenges gelöst werdenIn der CapSkip-App, auf Hardware, die Sie betreibenEntfernte API-Server oder eine menschliche Lösefarm
Rechnung, wenn Ihre Queue wächstUnverändert, egal wie viele JobsSteigt mit jedem Job, der auf ein Captcha trifft
Wer die Challenge siehtNur Ihre eigenen RechnerEin Drittanbieterdienst erhält die Daten
Parallele PHP-WorkerKein Thread-Limit; Ihr Server bestimmt das TempoMehr Durchsatz heißt, für mehr Lösungen zu zahlen
Einbindung in PHPcomposer require capskip/capskip, oder 2Captcha-Client behaltenDie eigene Client-Bibliothek des Anbieters
Bearbeitungszeit für Bild-CaptchasEtwa 0,1 Sekunden, direkt vor Ort gelöstEin Netzwerk-Roundtrip plus Wartezeit in der Queue

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

Captcha in PHP lösen: der Ablauf mit cURL und Guzzle

Meist trifft PHP-Code mitten in einem skriptgesteuerten Formular-POST auf ein Captcha: Ein cURL-Handle oder ein Guzzle-Client ruft die Seite ab, entdeckt eine Challenge und braucht eine gültige Antwort, bevor der POST abgeschickt werden kann. Der folgende Ablauf hält diese Sitzung vom Abruf bis zum Absenden intakt.

Sammeln Sie zuerst die Eingaben aus dem HTML, das Sie bereits heruntergeladen haben. reCAPTCHA und Turnstile brauchen den Wert data-sitekey und die Seiten-URL. GeeTest v3 braucht ein frisch ausgegebenes Paar aus gt und challenge, denn jede Challenge funktioniert einmal und veraltet nach etwa einer Minute. Ein Bild-Captcha braucht das Bild selbst, abgerufen mit demselben Cookie-Jar wie das Formular, damit es zu Ihrer Sitzung gehört. hCaptcha braucht dasselbe Paar wie reCAPTCHA, data-sitekey und die Seiten-URL, gesendet mit method=hcaptcha.

Rufen Sie als Nächstes die passende Methode Ihres Clients auf. Für Invisible reCAPTCHA geben Sie recaptcha() die Option invisible mit; für v3 setzen Sie version auf v3 und übergeben das action-Label der Seite. Die Methode turnstile() akzeptiert außerdem die Werte data und pagedata, wenn Sie vor einer vollständigen Cloudflare-Challenge-Seite stehen. Der Aufruf blockiert, bis die Antwort eintrifft, führen Sie ihn also aus einem CLI-Prozess oder einem Queue-Job aus.

Setzen Sie die Antwort schließlich dort ein, wo die Website sie sucht. Fügen Sie $result['code'] Ihren POST-Feldern unter dem Namen des Antwortfelds hinzu, den das Formular verwendet; bei GeeTest geben Sie die Werte challenge, validate und seccode so zurück, wie es das Frontend der Website selbst tun würde; nach einer Cloudflare-Challenge-Seite wiederholen Sie die Anfrage mit dem userAgent, den CapSkip zurückgegeben hat. Senden Sie zügig ab, da Tokens innerhalb von Minuten ablaufen, und wenn Sie über einen Proxy gelöst haben, schicken Sie den POST über denselben Proxy.

Weitere Anleitungen: Captcha-Jobs in Laravel-Queues · reCAPTCHA v2 in PHP · Cloudflare Turnstile in PHP

Welches Composer-Paket installiere ich für das Lösen von Captchas?
Führen Sie composer require capskip/capskip aus. Das Paket steht unter MIT-Lizenz und ist kostenlos, braucht PHP 8.0 oder neuer mit den Erweiterungen curl und json und bringt keine weiteren Laufzeitabhängigkeiten mit. Es ist nur der Bote zwischen Ihrem Code und der CapSkip-App, für das eigentliche Lösen brauchen Sie also eine CapSkip-Lizenz, beginnend mit der kostenlosen 3-tägigen Testversion.
Wie sieht ein reCAPTCHA-Aufruf in PHP-Code aus?
Lesen Sie data-sitekey aus der abgerufenen Seite, rufen Sie recaptcha() mit diesem Key und der Seiten-URL auf und senden Sie $result['code'] als g-recaptcha-response. Dieselbe Methode deckt Invisible reCAPTCHA über ihre Option invisible ab, v3, sobald Sie die Option version auf v3 setzen und den action-Namen der Seite ergänzen, und ebenso Enterprise-Websites.
Bewältigt die Turnstile-Methode auch die ganzseitige Cloudflare-Prüfung?
Ja. Die Methode turnstile() löst das eingebettete Widget, und ihr Token kommt in das Turnstile-Antwortfeld des Formulars. Auf der Zwischenseite, die Cloudflare vor dem Laden einer Website zeigt, sammeln Sie zusätzlich deren Werte data und pagedata und senden dann erneut, mit dem userAgent-Wert aus dem Ergebnis und über den Proxy, mit dem Sie gelöst haben.
Warum läuft meine Web-Anfrage in einen Timeout, während CapSkip löst?
Weil der Aufruf den gesamten PHP-Prozess blockiert und browserbasierte Lösungen wie reCAPTCHA standardmäßig bis zu 300 Sekunden lang pollen können, weit über eine typische max_execution_time hinaus. Verlagern Sie das Lösen in einen Artisan-Befehl, ein Cron-Skript oder einen Queue-Worker, wo der Prozess auf die Antwort warten darf.
Wie führe ich aus PHP viele Lösungen gleichzeitig aus?
Mit mehr Prozessen. Ein PHP-Prozess bearbeitet jeweils eine Lösung, starten Sie also mehrere Queue-Worker oder CLI-Skripte und richten Sie alle auf dieselbe CapSkip-App. Threads sind in jedem Tarif unbegrenzt; die Grenze ist, was Prozessor und RAM des Solver-Rechners dauerhaft leisten, und der Preis bewegt sich nicht.
Was liefert der GeeTest-v3-Aufruf an PHP zurück?
Holen Sie direkt vor dem Lösen einen neuen gt-Wert und eine neue challenge von der Website, denn beide sind nur einmal verwendbar. Die Methode geetest() braucht meist 7 bis 12 Sekunden und liefert $result['challenge'], $result['validate'] und $result['seccode'], die Sie in dem Format zurücksenden, das das Frontend der Website selbst verwendet.
Kann ich eine PHP-Klasse behalten, die für die 2Captcha-API geschrieben wurde?
Ja. Aktivieren Sie auf dem Windows-Rechner, auf dem CapSkip läuft, die 2Captcha-Emulation und klicken Sie auf die Schaltfläche Add to hosts file; Ihre bestehende Klasse erhält ihre Antworten dann lokal. Liegt dieser PHP-Code auf einem anderen Server, können Sie die Klasse meist stattdessen auf den CapSkip-Rechner an Port 8080 richten.
Liest CapSkip ein Bild-Captcha, das cURL heruntergeladen hat?
Ja. Die Methode normal() akzeptiert eine gespeicherte Datei, einen Link zu einem entfernten Bild oder Base64-Daten, und die Zeichen kommen in $result['code'] zurück, typischerweise in etwa 0,1 Sekunden. Rufen Sie das Bild in derselben cURL-Sitzung ab wie das Formular, Cookies eingeschlossen, damit die Antwort zu Ihrer Sitzung passt. Bild-Lösungen brauchen keinen Proxy.

Captcha-Lösen ohne Verbrauchsabrechnung für Ihre PHP-Queue

Installieren Sie die App, fügen Sie ein Composer-Paket hinzu und lassen Sie Ihre Worker so oft lösen, wie der Job es verlangt. Ihre Rechnung bleibt fest, ob die Queue zehn Jobs enthält oder zehntausend.