So lösen Sie GeeTest v3
Das Feld oben ist ein Live- GeeTest v3 Herausforderung, das Schiebe-Puzzle. Diese Seite zeigt drei einfache Wege, GeeTest v3 zu lösen und die drei Werte zu erhalten, die es zurückgibt, geetest_challenge, geetest_validate und geetest_seccode: automatisch mit der CapSkip-Browser-Erweiterung, in Ihrem eigenen Code mit dem CapSkip-SDK oder indem Sie den Captcha-Dienst, den Ihre Tools bereits aufrufen, an CapSkip umleiten. CapSkip läuft lokal auf Ihrem Gerät, sodass keine Gebühren pro Lösung anfallen und nichts Ihren Rechner verlässt.
Option 1: Lösen Sie GeeTest v3 mit der Browsererweiterung
Der einfachste Weg, GeeTest v3 zu umgehen, ist die CapSkip-Captcha-Löser-Erweiterung für Chrome und Firefox. Es findet die Lücke im Puzzle, zieht das Teil mit einer menschenähnlichen Bewegung an seinen Platz und übergibt der Website einen gültigen seccode, ganz ohne Code zu schreiben.
Installieren Sie die Erweiterung
Fügen Sie CapSkip aus dem Chrome Web Store oder von Firefox Add-ons hinzu. Es funktioniert auch in Brave, Edge, Opera und Vivaldi.
Starten Sie die CapSkip-App
Installieren und öffnen Sie die CapSkip-Desktop-App. Sie übernimmt das Lösen auf Ihrem eigenen Gerät und arbeitet mit der Erweiterung zusammen.
Es löst automatisch
Laden Sie diese Seite neu, und CapSkip schiebt das Puzzleteil für Sie in die Lücke. Sie behalten lieber die Kontrolle? Wechseln Sie jederzeit in den manuellen Modus.
Option 2: GeeTest v3 mit dem CapSkip-SDK lösen
Automatisierung, einen Scraper oder einen Bot am Erstellen? Verwenden Sie das CapSkip-SDK zum Captcha-Lösen um GeeTest v3 zu lösen aus Python, Node.js, PHP oder C#. Sie übergeben den gt, ein frischer challenge und die Seiten-URL, und CapSkip gibt die gelösten Werte challenge, validate und seccode zurück, die Sie wie ein echtes einreichen können.
e3a600a044ef0ad51749da5c451adca0https://capskip.com/de/captcha-demo/geetest-v3/Bevor Sie beginnen
CapSkip löst lokal. Laden und starten Sie die CapSkip-Desktop-App und lassen Sie sie im Hintergrund geöffnet. Das SDK kommuniziert mit ihr über 127.0.0.1:8080, sodass es keine Cloud-Aufrufe und keine Gebühren pro Lösung gibt.
Die Challenge läuft ab
Anders als ein reCAPTCHA-Sitekey benötigt GeeTest v3 zwei Werte. Der gt oben ist statisch und ändert sich nie, aber der challenge ist einmalig nutzbar und verfällt nach etwa einer Minute, und es wird verbraucht, sobald das Widget es lädt. Holen Sie unmittelbar vor jeder Lösung ein neues, genau das macht Schritt 2.
Installieren Sie das SDK
Fügen Sie den offiziellen CapSkip-Client zu Ihrem Projekt hinzu.
pip install capskipnpm install capskipcomposer require capskip/capskipdotnet add package CapSkipHolen Sie sich ein frisches gt und challenge
Diese Seite registriert ihre GeeTest-Challenge serverseitig und gibt die benötigte Nonce in einem Inline- capskipCaptcha Objekt. Lesen Sie das, und fordern Sie dann von der Seite eine eigene Herausforderung an, damit die vom Widget verwendete unberührt bleibt.
import json, re, requests
PAGE = "https://capskip.com/de/captcha-demo/geetest-v3/"
AJAX = "https://capskip.com/wp-admin/admin-ajax.php"
session = requests.Session()
html = session.get(PAGE).text
# The page prints its ajax nonce and page id in an inline capskipCaptcha object
cfg = json.loads(re.search(r"capskipCaptcha\s*=\s*(\{.*\});", html).group(1))
# Register a fresh challenge (single use, expires in about a minute)
data = session.post(AJAX, data={
"action": "capskip_geetest_register",
"nonce": cfg["nonce"],
"post_id": cfg["postId"],
}).json()["data"]
gt, challenge = data["gt"], data["challenge"]
print(gt, challenge)const PAGE = 'https://capskip.com/de/captcha-demo/geetest-v3/';
const AJAX = 'https://capskip.com/wp-admin/admin-ajax.php';
const html = await (await fetch(PAGE)).text();
// The page prints its ajax nonce and page id in an inline capskipCaptcha object
const cfg = JSON.parse(html.match(/capskipCaptcha\s*=\s*(\{.*\});/)[1]);
// Register a fresh challenge (single use, expires in about a minute)
const res = await fetch(AJAX, {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: new URLSearchParams({
action: 'capskip_geetest_register',
nonce: cfg.nonce,
post_id: cfg.postId,
}),
});
const { gt, challenge } = (await res.json()).data;
console.log(gt, challenge);<?php
$page = 'https://capskip.com/de/captcha-demo/geetest-v3/';
$ajax = 'https://capskip.com/wp-admin/admin-ajax.php';
$html = file_get_contents($page);
// The page prints its ajax nonce and page id in an inline capskipCaptcha object
preg_match('/capskipCaptcha\s*=\s*(\{.*\});/', $html, $m);
$cfg = json_decode($m[1], true);
// Register a fresh challenge (single use, expires in about a minute)
$res = file_get_contents($ajax, false, stream_context_create([
'http' => [
'method' => 'POST',
'header' => 'Content-Type: application/x-www-form-urlencoded',
'content' => http_build_query([
'action' => 'capskip_geetest_register',
'nonce' => $cfg['nonce'],
'post_id' => $cfg['postId'],
]),
],
]));
$data = json_decode($res, true)['data'];
$gt = $data['gt'];
$challenge = $data['challenge'];
echo $gt, ' ', $challenge;using System.Text.Json.Nodes;
using System.Text.RegularExpressions;
const string Page = "https://capskip.com/de/captcha-demo/geetest-v3/";
const string Ajax = "https://capskip.com/wp-admin/admin-ajax.php";
var http = new HttpClient();
var html = await http.GetStringAsync(Page);
// The page prints its ajax nonce and page id in an inline capskipCaptcha object
var cfg = JsonNode.Parse(Regex.Match(html, @"capskipCaptcha\s*=\s*(\{.*\});").Groups[1].Value)!;
// Register a fresh challenge (single use, expires in about a minute)
var form = new FormUrlEncodedContent(new Dictionary<string, string> {
["action"] = "capskip_geetest_register",
["nonce"] = cfg["nonce"]!.ToString(),
["post_id"] = cfg["postId"]!.ToString(),
});
var res = await http.PostAsync(Ajax, form);
var data = JsonNode.Parse(await res.Content.ReadAsStringAsync())!["data"]!;
string gt = data["gt"]!.ToString();
string challenge = data["challenge"]!.ToString();
Console.WriteLine($"{gt} {challenge}");Sie erhalten die der Seite gt plus ein frisches 32-Zeichen- challenge. Lösen Sie es sofort.
GeeTest v3 lösen und die drei Werte erhalten
Übergeben Sie den gt, the challenge die Sie gerade registriert haben, und die dieser Seite url zu geetest(). CapSkip zieht das Puzzleteil in die Lücke und gibt das gelöste Triplett zurück.
from capskip import CapSkip
# Connect to the CapSkip app running on your machine
solver = CapSkip(host="127.0.0.1", port=8080)
# Solve the GeeTest v3 slider on this page
result = solver.geetest(
gt=gt,
challenge=challenge,
url="https://capskip.com/de/captcha-demo/geetest-v3/",
)
print(result["challenge"]) # geetest_challenge
print(result["validate"]) # geetest_validate
print(result["seccode"]) # geetest_seccodeconst { CapSkip } = require('capskip');
// Connect to the CapSkip app running on your machine
const solver = new CapSkip({ host: '127.0.0.1', port: 8080 });
// Solve the GeeTest v3 slider on this page
const result = await solver.geetest(
gt,
challenge,
'https://capskip.com/de/captcha-demo/geetest-v3/',
);
console.log(result.challenge); // geetest_challenge
console.log(result.validate); // geetest_validate
console.log(result.seccode); // geetest_seccode<?php
require 'vendor/autoload.php';
use CapSkip\CapSkip;
// Connect to the CapSkip app running on your machine
$solver = new CapSkip(['host' => '127.0.0.1', 'port' => 8080]);
// Solve the GeeTest v3 slider on this page
$result = $solver->geetest(
$gt,
$challenge,
'https://capskip.com/de/captcha-demo/geetest-v3/'
);
echo $result['challenge']; // geetest_challenge
echo $result['validate']; // geetest_validate
echo $result['seccode']; // geetest_seccodeusing CapSkip;
// Connect to the CapSkip app running on your machine
var solver = new CapSkipClient(host: "127.0.0.1", port: 8080);
// Solve the GeeTest v3 slider on this page
var result = await solver.GeetestAsync(
gt,
challenge,
"https://capskip.com/de/captcha-demo/geetest-v3/");
Console.WriteLine(result.Challenge); // geetest_challenge
Console.WriteLine(result.Validate); // geetest_validate
Console.WriteLine(result.Seccode); // geetest_seccodeSie erhalten challenge, validate und seccode, bereit zum Absenden.
Verwenden Sie die drei Werte
Senden Sie das Triplet unter den Namen zurück, die das Widget selbst verwendet. Auf dieser Seite ist das derselbe admin-ajax-Aufruf, den der Prüfen Schritt macht, der den seccode gegen GeeTest verifiziert, bevor er grün wird.
// The three values GeeTest returns, exactly as the widget produces them
const payload = {
geetest_challenge: result.challenge,
geetest_validate: result.validate,
geetest_seccode: result.seccode,
};
// Send them to whatever endpoint the site verifies with, then submit the form.
// This demo posts challenge, validate and seccode to admin-ajax.php with
// action=capskip_captcha_verify and provider=geetest_v3.CapSkip auf anderen GeeTest v3-Websites verwenden
Um GeeTest v3 überall zu lösen, benötigen Sie drei Dinge von der Seite:
- gt: die öffentliche Captcha-ID, pro Website statisch. Es ist das
gtQuery-Parameter bei den Aufrufen des Widgets anapi.geetest.com/gettype.phpundget.php. - challenge: ein nur einmal verwendbarer Wert, der aus der seiteneigenen init- oder register-Anfrage stammt, in der Regel eine kleine JSON-Antwort neben dem
gt. Spielen Sie genau diese eine Anfrage vor jeder Lösung erneut ab, um eine frische Challenge zu erhalten. - Seiten-URL: die vollständige Adresse der Seite.
Regionale API-Server und Proxys
Manche Websites sind an einen regionalen GeeTest-Endpunkt gebunden, etwa api-na.geetest.com. Übergeben Sie es als api_server über die HTTP-API, wenn das der Fall ist. Ein proxy (proxy und proxytype) wird ebenfalls unterstützt, was hilft, wenn die Website die Challenge an Ihre IP bindet.
result = solver.geetest(
gt="GT_FROM_PAGE",
challenge="FRESH_CHALLENGE", # register a new one right before every solve
url="https://example.com/login",
)
challenge = result["challenge"] # geetest_challenge
validate = result["validate"] # geetest_validate
seccode = result["seccode"] # geetest_seccodeconst result = await solver.geetest(
'GT_FROM_PAGE',
'FRESH_CHALLENGE', // register a new one right before every solve
'https://example.com/login',
);
const { challenge, validate, seccode } = result;$result = $solver->geetest(
'GT_FROM_PAGE',
'FRESH_CHALLENGE', // register a new one right before every solve
'https://example.com/login'
);
$challenge = $result['challenge']; // geetest_challenge
$validate = $result['validate']; // geetest_validate
$seccode = $result['seccode']; // geetest_seccodevar result = await solver.GeetestAsync(
"GT_FROM_PAGE",
"FRESH_CHALLENGE", // register a new one right before every solve
"https://example.com/login");
string challenge = result.Challenge; // geetest_challenge
string validate = result.Validate; // geetest_validate
string seccode = result.Seccode; // geetest_seccodeWenn eine Lösung als abgelehnt zurückkommt, ist die übliche Ursache ein veraltete Challenge: Er wurde bereits von der Seite verwendet oder blieb länger als eine Minute ungenutzt.
Sie verwenden nicht Python, Node.js, PHP oder C#? Die SDKs sind lediglich Wrapper über der CapSkip-HTTP-API (die standardmäßige in.php / res.php Endpunkte mit method=geetest), sodass Sie GeeTest v3 lösen können von jede Sprache, jedes Framework oder Tool. Siehe die GeeTest v3 API-Referenz.
Option 3: Senden Sie Ihren bestehenden Löser-Dienst-Code an CapSkip
Lösen Sie GeeTest v3 bereits über einen Pay-per-Captcha-Dienst wie 2Captcha, Anti-Captcha oder CapMonster? Sie müssen keine einzige Zeile umschreiben. Die CapSkip-App enthält einen Service-Emulator die die eigenen APIs dieser Dienste lokal spricht: Wählen Sie den von Ihnen genutzten Dienst, klicken Sie auf Add to hosts file, und jede Anfrage, die Ihr Bot, Scraper oder Ihr Standard-Tool bereits daran sendet, wird von CapSkip auf Ihrem eigenen Rechner beantwortet, zu einem Pauschalpreis statt einer Rechnung pro Lösung.
Wählen Sie Ihren Dienst
Öffnen Sie die CapSkip-App und wählen Sie den Dienst, mit dem Ihr Code bereits kommuniziert: 2Captcha, RuCaptcha, Anti-Captcha, CapMonster Cloud, CapSolver, DeathByCaptcha, SolveCaptcha oder Captchas.io.
Add to hosts file
Ein Klick in der App richtet die Domain dieses Dienstes auf CapSkip, sodass die Aufrufe Ihres Tools auf Ihrer eigenen Maschine beantwortet werden, statt an eine kostenpflichtige API zu gehen.
Betreiben Sie Ihr Tool unverändert
Derselbe API-Schlüssel, dieselbe Anfrage, dieselbe Polling-Schleife. CapSkip antwortet im eigenen Format dieses Dienstes, und Ihr Code erhält die gelöste Challenge sowie die validate- und seccode-Werte zurück.
Nichts weiter unten ändert sich beim Umstieg. Es ist derselbe Aufruf, den Ihr Code heute macht, außer dass GeeTest v3 nun lokal gelöst wird und die gelösten Challenge-, Validate- und Seccode-Werte von CapSkip zurückkommen:
POST https://2captcha.com/in.php
key=YOUR_EXISTING_API_KEY
method=geetest
gt=e3a600a044ef0ad51749da5c451adca0
challenge=FRESH_CHALLENGE_FROM_THE_PAGE
pageurl=https://capskip.com/de/captcha-demo/geetest-v3/
GET https://2captcha.com/res.php?key=YOUR_EXISTING_API_KEY&action=get&id=2122988149
{"geetest_challenge":"…","geetest_validate":"…","geetest_seccode":"…"}Client-Bibliotheken funktionieren auf die gleiche Weise: ein Anti-Captcha-artiger createTask / getTaskResult -Paar oder jeder Wrapper, der auf einem dieser Dienste aufbaut, funktioniert weiter, sobald der Emulator aktiviert ist. Die vollständige Referenz für Anfrage und Antwort finden Sie in der CapSkip-API-Dokumentation.
Mehr zum Lösen von GeeTest v3
Leitfäden für die Tools und Sprachen, die üblicherweise mit dieser Demo kombiniert werden.
Über diese GeeTest-v3-Demo
Diese Seite ist eine Live- GeeTest-v3-Demo wo Sie testen können, wie das Schieberätsel funktioniert, und in Echtzeit zusehen, wie es gelöst wird. GeeTest v3 ist das Slider-Captcha, das Ihnen weltweit auf Login- und Anmeldeformularen begegnet: Ein Stück wird aus einem Bild ausgeschnitten und Sie ziehen es zurück in die Lücke. Lösen Sie es, und GeeTest gibt drei Werte zurück, geetest_challenge, geetest_validate und geetest_seccode, was Ihr Server bei GeeTest prüft, bevor er der Anfrage vertraut.
Entwickler, Tester und Automatisierungs-Ingenieure können diese GeeTest-v3-Testseite nutzen, um zu beobachten, wie sich die Challenge registriert, der Slider auslöst und das Triplet zurückkommt, und um zu benchmarken, wie CapSkip GeeTest v3 löst. Ob Sie GeeTest einmal lösen oder Tausende von Lösungen automatisieren müssen – CapSkip ist ein GeeTest-Löser der auf drei Arten funktioniert: die No-Code- Captcha-Löser-Erweiterung für Chrome und Firefox, und die Captcha-Löse-SDK für Python, Node.js, PHP und C#, sowie eine nahtlose Emulation der Captcha-Dienste, für die Sie heute vielleicht pro Lösung zahlen – alles mit unbegrenztem Lösen zu einem einzigen Pauschalpreis. Alle drei werden von derselben Desktop-KI Captcha-Löser, einmal installiert und auf Ihrer eigenen Maschine laufend, sodass nichts auf einem entfernten Server in die Warteschlange gestellt und nichts pro Lösung abgerechnet wird.
