GeeTest v3 Nasıl Çözülür
Yukarıdaki kutu canlı bir GeeTest v3 challenge, kaydır-oturt bulmacası. Bu sayfa, GeeTest v3'ü çözmenin ve döndürdüğü üç değeri almanın üç kolay yolunu gösterir, geetest_challenge, geetest_validate ve geetest_seccode: CapSkip tarayıcı uzantısıyla otomatik olarak, CapSkip SDK'sıyla kendi kodunuzda ya da araçlarınızın halihazırda çağırdığı captcha servisini CapSkip'e yönlendirerek. CapSkip cihazınızda yerel olarak çalışır, bu yüzden çözüm başına ücret yoktur ve hiçbir şey makinenizden çıkmaz.
Seçenek 1: GeeTest v3'ü tarayıcı uzantısıyla çözün
GeeTest v3'ü atlatmanın en basit yolu şudur: CapSkip captcha çözücü uzantısı Chrome ve Firefox için. Bulmacadaki boşluğu bulur, parçayı insana benzer bir hareketle yerine sürükler ve siteye yazacak kod olmadan geçerli bir seccode teslim eder.
Uzantıyı yükleyin
CapSkip'i Chrome Web Store veya Firefox Add-ons'tan ekleyin. Ayrıca Brave, Edge, Opera ve Vivaldi'de de çalışır.
CapSkip uygulamasını çalıştırın
CapSkip masaüstü uygulamasını kurun ve açın. Çözümü kendi cihazınızda yapar ve uzantıyla eşleşir.
Otomatik olarak çözer
Bu sayfayı yeniden yükleyin, CapSkip bulmaca parçasını sizin için boşluğa kaydırsın. Kontrolü elinizde tutmayı mı tercih ediyorsunuz? İstediğiniz zaman manuel moda geçin.
Seçenek 2: GeeTest v3'ü CapSkip SDK ile çözün
Otomasyon, kazıyıcı veya bot mu geliştiriyorsunuz? Şunu kullanın: CapSkip captcha çözme SDK'sı GeeTest v3'ü şuradan çözmek için: Python, Node.js, PHP veya C#. Bu sayfanın şeyini geçirirsiniz: gt, taze bir challenge ve sayfa URL'sini, CapSkip ise gerçek bir tanesi gibi gönderebileceğiniz çözülmüş challenge, validate ve seccode değerlerini döndürür.
e3a600a044ef0ad51749da5c451adca0https://capskip.com/tr/captcha-demo/geetest-v3/Başlamadan önce
CapSkip yerel olarak çözer. İndirin ve şunu çalıştırın: CapSkip masaüstü uygulaması ve arka planda açık tutun. SDK onunla şu üzerinden iletişim kurar 127.0.0.1:8080, bu yüzden hiçbir bulut çağrısı ve çözüm başına ücret yoktur.
Challenge sona erer
Bir reCAPTCHA site key'inin aksine, GeeTest v3 iki değere ihtiyaç duyar. Bunlar: gt yukarıdaki statiktir ve asla değişmez, ancak challenge tek kullanımlıktır ve yaklaşık bir dakika sonra geçerliliğini yitirir; ayrıca widget onu yüklediği anda tükenir. Her çözümden hemen önce yenisini alın; adım 2'nin yaptığı da tam olarak budur.
SDK'yı yükleyin
Resmi CapSkip istemcisini projenize ekleyin.
pip install capskipnpm install capskipcomposer require capskip/capskipdotnet add package CapSkipTaze bir gt ve challenge alın
Bu sayfa GeeTest challenge'ını sunucu tarafında kaydeder ve ihtiyaç duyduğu nonce'ı satır içi olarak yazdırır capskipCaptcha nesnesi. Bunu okuyun, ardından sayfadan kendinize ait bir challenge isteyin ki widget'ın kullandığı challenge'a dokunulmasın.
import json, re, requests
PAGE = "https://capskip.com/tr/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/tr/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/tr/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/tr/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}");Sayfanın gt artı yeni bir 32 karakterlik challenge. Onu hemen çözün.
GeeTest v3'ü çözün ve üç değeri alın
Şunu geçirin: gt, challenge az önce kaydettiğiniz ve bu sayfanın url şuraya geetest(). CapSkip bulmaca parçasını boşluğa sürükler ve çözülmüş üçlüyü döndürür.
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/tr/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/tr/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/tr/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/tr/captcha-demo/geetest-v3/");
Console.WriteLine(result.Challenge); // geetest_challenge
Console.WriteLine(result.Validate); // geetest_validate
Console.WriteLine(result.Seccode); // geetest_seccodeŞunu alırsınız: challenge, validate ve seccode, göndermeye hazır.
Üç değeri kullanın
Üçlüyü, widget'ın kendisinin kullandığı adlar altında geri gönderin. Bu sayfada bu, aynı admin-ajax çağrısıdır: Kontrol et adımın yaptığı, yeşile dönmeden önce seccode'u GeeTest'e karşı doğrular.
// 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'i diğer GeeTest v3 sitelerinde kullanma
GeeTest v3'ü herhangi bir yerde çözmek için sayfadan üç şeye ihtiyacınız vardır:
- gt: herkese açık captcha ID'si, site başına sabittir. Şudur:
gtwidget'ın çağrılarındaki query parametresi şuraya:api.geetest.com/gettype.phpveget.php. - challenge: sitenin kendi init veya register isteğinden gelen, genellikle şunun yanında küçük bir JSON yanıtı olan tek kullanımlık bir değer:
gt. Taze bir doğrulama almak için her çözümden önce o tek isteği yeniden çalıştırın. - Sayfa URL'si: sayfanın tam adresi.
Bölgesel API sunucuları ve proxy'ler
Bazı siteler şunun gibi bölgesel bir GeeTest uç noktasına sabitlenmiştir api-na.geetest.com. Şu şekilde geçirin: api_server bu durumda HTTP API üzerinde. Bir proxy (proxy ve proxytype) de desteklenir; bu, site sorguyu IP'nize bağladığında yardımcı olur.
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_seccodeBir çözüm reddedilerek geri gelirse, olağan neden bir bayat (stale) challenge: ya sayfa tarafından zaten kullanıldı ya da bir dakikadan fazla kullanılmadan bekledi.
Python, Node.js, PHP veya C# kullanmıyor musunuz? SDK'lar yalnızca CapSkip HTTP API'sinin sarmalayıcılarıdır (standart in.php / res.php şununla endpoint'ler: method=geetest), böylece GeeTest v3'ü şuradan çözebilirsiniz: herhangi bir dil, çerçeve veya araç. Bkz. GeeTest v3 API referansı.
Seçenek 3: Mevcut çözücü servis kodunuzu CapSkip'e gönderin
GeeTest v3'ü halihazırda şunun gibi captcha başına ödemeli bir servisle mi çözüyorsunuz 2Captcha, Anti-Captcha veya CapMonster? Tek bir satırı bile yeniden yazmanıza gerek yok. CapSkip uygulaması bir servis emülatörü o servislerin kendi API'lerini yerel olarak konuşur: kullandığınız servisi seçin, tıklayın hosts dosyasına ekleyin, ve bot'unuzun, kazıyıcınızın veya hazır aracınızın ona zaten gönderdiği her istek, çözüm başına fatura yerine sabit bir fiyata, kendi makinenizde CapSkip tarafından yanıtlanır.
Servisinizi seçin
CapSkip uygulamasını açın ve kodunuzun zaten iletişim kurduğu servisi seçin: 2Captcha, RuCaptcha, Anti-Captcha, CapMonster Cloud, CapSolver, DeathByCaptcha, SolveCaptcha veya Captchas.io.
hosts dosyasına ekleyin
Uygulamadaki tek bir tıklama, o servisin alan adını CapSkip'e yönlendirir; böylece aracınızın yaptığı çağrılar, ücretli bir API'ye gitmek yerine kendi makinenizde yanıtlanır.
Aracınızı değiştirmeden çalıştırın
Aynı API key, aynı istek, aynı yoklama döngüsü. CapSkip o servisin kendi biçiminde yanıt verir ve kodunuz çözülmüş challenge, validate ve seccode değerlerini geri alır.
Geçiş yaptığınızda aşağıdakilerin hiçbiri değişmez. Bu, kodunuzun bugün yaptığı çağrının aynısıdır; tek fark, GeeTest v3'ün artık yerel olarak çözülmesi ve çözülmüş challenge, validate ve seccode değerlerinin CapSkip'ten geri gelmesidir:
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/tr/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":"…"}İstemci kütüphaneleri aynı şekilde çalışır: Anti-Captcha tarzı bir createTask / getTaskResult çifti veya bu servislerden biri üzerine kurulmuş herhangi bir sarmalayıcı, emülatör açıldığında çalışmaya devam eder. Tam istek ve yanıt referansı şurada bulunur: CapSkip API belgeleri.
GeeTest v3 çözme hakkında daha fazlası
İnsanların bu demoyla genellikle birlikte kullandığı araçlar ve diller için kılavuzlar.
Bu GeeTest v3 demosu hakkında
Bu sayfa canlı bir GeeTest v3 demosu kaydırıp-yerleştirme bulmacasının nasıl çalıştığını test edebileceğiniz ve gerçek zamanlı olarak çözüldüğünü izleyebileceğiniz yer. GeeTest v3, dünya genelinde giriş ve kayıt formlarında karşılaştığınız kaydırıcı captcha'dır: bir resimden bir parça kesilir ve siz onu tekrar boşluğa sürüklersiniz. Çözün, GeeTest üç değer geri verir, geetest_challenge, geetest_validate ve geetest_seccode, sunucunuz isteğe güvenmeden önce bunu GeeTest'e karşı kontrol eder.
Geliştiriciler, test uzmanları ve otomasyon mühendisleri, challenge'ın kaydolmasını, kaydırıcının çalışmasını ve üçlünün geri dönmesini izlemek ve CapSkip'in GeeTest v3'ü nasıl çözdüğünü kıyaslamak için bu GeeTest v3 test sayfasını kullanabilir. İster GeeTest'i bir kez çözmeniz ister binlerce çözümü otomatikleştirmeniz gereksin, CapSkip bir GeeTest çözücü üç şekilde çalışır: kod gerektirmeyen (no-code) captcha çözücü uzantısı Chrome ve Firefox için ve captcha çözme SDK'sı Python, Node.js, PHP ve C# için ve bugün çözüm başına ödüyor olabileceğiniz captcha servislerinin doğrudan emülasyonu; hepsi tek bir sabit fiyatta sınırsız çözümle. Üçü de aynı masaüstü yapay zekâ tarafından yönlendirilir captcha çözücü, bir kez kurulur ve kendi makinenizde çalışır, dolayısıyla uzak bir sunucuda hiçbir şey kuyruğa alınmaz ve çözüm başına hiçbir şey faturalandırılmaz.
