GeeTest · Canlı demo

GeeTest v3 Demo

GeeTest'in parçayı kaydırarak tamamlanan yapboz doğrulaması.

  • Ücretsiz, kayıt gerekmez
  • Gerçek sağlayıcı widget'ı
  • Doğrulama yanıtını görün

Canlı GeeTest v3 widget'ı

Çubuğa tıklayın, ardından yapboz parçasını yerine kaydırın. GeeTest challenge, validate ve seccode değerlerini döndürür döndürmez doğrulama tamamlanır.

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.

Kod gerekmez

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.

1

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.

2

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.

3

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.

Geliştiriciler iç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.

Captcha ID (gt)
e3a600a044ef0ad51749da5c451adca0
Sayfa URL'si
https://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.

1

SDK'yı yükleyin

Resmi CapSkip istemcisini projenize ekleyin.

pip install capskip
npm install capskip
composer require capskip/capskip
dotnet add package CapSkip
2

Taze 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.

3

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_seccode
const { 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_seccode
using 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.

4

Üç 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.
Gelişmiş

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: gt widget'ın çağrılarındaki query parametresi şuraya: api.geetest.com/gettype.php ve get.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_seccode
const 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_seccode
var 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_seccode

Bir çö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ı.

Kod değişikliği yok

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.

1

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.

2

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.

3

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.

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.

Mevcut 2Captcha veya Anti-Captcha kodumu koruyabilir miyim?
Evet. CapSkip uygulaması şunların API'lerini emüle eder: 2Captcha, RuCaptcha, Anti-Captcha, CapMonster Cloud, CapSolver, DeathByCaptcha ve SolveCaptcha. Uygulamada servisinizi seçin, "Add to hosts file" seçeneğine tıklayın; kodunuzun zaten gönderdiği istekler, hiçbir kod değişikliği ve çözüm başına ücret olmadan CapSkip tarafından yerel olarak çözülür.
GeeTest v3'ü nasıl çözerim?
Şunu kurun: CapSkip uzantısı veya SDK, CapSkip masaüstü uygulamasını çalıştırın; CapSkip, geçirdiğiniz gt ve challenge için geçerli bir challenge, validate ve seccode döndürür. Uzantı, bulmaca parçasını sayfada sizin için kaydırır; SDK ise GeeTest v3'ü kendi kodunuzdan çözmenizi sağlar.
GeeTest v3 atlatılabilir mi?
Evet. CapSkip, boşluğun nerede olduğunu bulan, parçayı içine sürükleyen ve gerçek bir kullanıcı gibi gönderebileceğiniz geetest_challenge, geetest_validate ve geetest_seccode üçlüsünü size veren bir GeeTest v3 çözücüdür.
Her çözüm için neden yeni bir challenge'a ihtiyacım var?
GeeTest v3 parametrelerini ikiye böler. gt statik bir site tanımlayıcısıdır, ancak challenge tek kullanımlıktır ve yaklaşık bir dakikada sona erer; widget'ı yüklemek onu tüketir. Yukarıdaki 2. adımın yaptığı gibi, her çözümden hemen önce yeni bir challenge kaydedin, aksi halde GeeTest cevabı reddeder.
CapSkip, GeeTest v3'ü ne kadar hızlı çözer?
CapSkip genellikle birkaç saniye içinde bir GeeTest v3 üçlüsü döndürür. Her çözüm kendi cihazınızda yerel olarak çalışır; böylece uzak bir sunucuda hiçbir şey kuyruğa alınmaz; challenge hızla sona erdiği için bu, burada önemlidir.
CapSkip'i diğer programlama dilleriyle kullanabilir miyim?
Evet. Python, Node.js, PHP ve C# SDK'larının ötesinde, CapSkip standart bir HTTP API sunar; böylece GeeTest v3'ü herhangi bir dilden, çerçeveden veya araçtan çözebilirsiniz. Bkz. GeeTest v3 API referansı.
CapSkip ücretsiz bir GeeTest çözücü mü?
Uzantının kurulumu ücretsizdir ve bir dolarlık deneme size 1.000 çözümle yedi gün boyunca tam erişim sağlar. Ücretli lisanslar, captcha başına ücret olmadan tek bir sabit fiyatta sınırsız çözümün kilidini açar.