Cara Memecahkan GeeTest v3
Kotak di atas adalah versi langsung dari GeeTest v3 tantangan, puzzle geser-untuk-pas. Halaman ini menunjukkan tiga cara mudah memecahkan GeeTest v3 dan mendapatkan tiga nilai yang dikembalikannya, geetest_challenge, geetest_validate dan geetest_seccode: secara otomatis dengan ekstensi browser CapSkip, di dalam kode Anda sendiri dengan SDK CapSkip, atau dengan merutekan layanan captcha yang sudah dipanggil alat Anda ke CapSkip. CapSkip berjalan secara lokal di perangkat Anda, jadi tidak ada biaya per pemecahan dan tidak ada yang keluar dari komputer Anda.
Opsi 1: Pecahkan GeeTest v3 dengan ekstensi browser
Cara paling sederhana untuk melewati GeeTest v3 adalah Ekstensi pemecah captcha CapSkip untuk Chrome dan Firefox. Ekstensi ini menemukan celah pada puzzle, menyeret potongannya ke tempatnya dengan gerakan mirip manusia, dan menyerahkan seccode yang valid ke situs, tanpa kode yang perlu ditulis.
Instal ekstensi
Tambahkan CapSkip dari Chrome Web Store atau Firefox Add-ons. Ekstensi ini juga berfungsi di Brave, Edge, Opera dan Vivaldi.
Jalankan aplikasi CapSkip
Instal dan buka aplikasi desktop CapSkip. Aplikasi ini melakukan pemecahan di perangkat Anda sendiri dan berpasangan dengan ekstensi.
Ini memecahkan secara otomatis
Muat ulang halaman ini dan CapSkip akan menggeser potongan puzzle ke celahnya untuk Anda. Ingin tetap memegang kendali? Beralihlah ke mode manual kapan saja.
Opsi 2: Pecahkan GeeTest v3 dengan CapSkip SDK
Membangun otomatisasi, scraper atau bot? Gunakan SDK pemecahan captcha CapSkip untuk memecahkan GeeTest v3 dari Python, Node.js, PHP atau C#. Anda memberikan untuk halaman ini gt, baru challenge dan URL halaman, lalu CapSkip mengembalikan nilai challenge, validate dan seccode hasil pemecahan yang dapat Anda kirim seperti nilai asli.
e3a600a044ef0ad51749da5c451adca0https://capskip.com/id/captcha-demo/geetest-v3/Sebelum Anda mulai
CapSkip memecahkan secara lokal. Unduh dan jalankan aplikasi desktop CapSkip dan biarkan tetap terbuka di latar belakang. SDK berkomunikasi dengannya di 127.0.0.1:8080, sehingga tidak ada panggilan cloud dan tidak ada biaya per pemecahan.
Challenge kedaluwarsa
Tidak seperti site key reCAPTCHA, GeeTest v3 memerlukan dua nilai. Nilai gt di atas bersifat statis dan tidak pernah berubah, tetapi challenge bersifat sekali pakai dan mati setelah sekitar satu menit, dan langsung hangus begitu widget memuatnya. Ambil yang baru tepat sebelum setiap pemecahan, dan itulah persis yang dilakukan langkah 2.
Instal SDK
Tambahkan klien resmi CapSkip ke proyek Anda.
pip install capskipnpm install capskipcomposer require capskip/capskipdotnet add package CapSkipDapatkan gt dan challenge yang baru
Halaman ini mendaftarkan challenge GeeTest-nya di sisi server dan mencetak nonce yang dibutuhkannya di dalam blok inline capskipCaptcha objek. Baca itu, lalu minta halaman memberi Anda challenge tersendiri agar challenge yang sedang dipakai widget tetap tidak terganggu.
import json, re, requests
PAGE = "https://capskip.com/id/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/id/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/id/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/id/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}");Anda mendapatkan dari halaman ini gt ditambah 32 karakter baru challenge. Pecahkan segera.
Pecahkan GeeTest v3 dan dapatkan ketiga nilainya
Teruskan gt, challenge yang baru saja Anda daftarkan dan milik halaman ini url ke geetest(). CapSkip menyeret potongan puzzle ke celahnya dan mengembalikan triplet hasil pemecahan.
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/id/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/id/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/id/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/id/captcha-demo/geetest-v3/");
Console.WriteLine(result.Challenge); // geetest_challenge
Console.WriteLine(result.Validate); // geetest_validate
Console.WriteLine(result.Seccode); // geetest_seccodeAnda mendapatkan challenge, validate dan seccode, siap dikirim.
Gunakan ketiga nilai tersebut
Kirim kembali ketiga nilai itu dengan nama yang dipakai widget itu sendiri. Di halaman ini, itu adalah panggilan admin-ajax yang sama yang Periksa tersebut, yang memverifikasi seccode terhadap GeeTest sebelum berubah menjadi hijau.
// 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.Menggunakan CapSkip di situs GeeTest v3 lainnya
Untuk memecahkan GeeTest v3 di mana pun, Anda memerlukan tiga hal dari halaman:
- gt: ID captcha publik, statis per situs. Inilah
gtparameter query pada panggilan widget keapi.geetest.com/gettype.phpdanget.php. - challenge: sebuah nilai sekali pakai yang berasal dari permintaan init atau register milik situs itu sendiri, biasanya berupa respons JSON kecil di sebelah
gt. Ulangi permintaan tunggal itu sebelum setiap pemecahan untuk mendapatkan challenge yang baru. - URL Halaman: alamat lengkap halaman tersebut.
Server API regional dan proxy
Beberapa situs terikat pada endpoint GeeTest regional seperti api-na.geetest.com. Teruskan sebagai api_server pada HTTP API jika memang demikian. proxy (proxy dan proxytype) juga didukung, yang membantu ketika situs mengikat challenge ke IP Anda.
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_seccodeJika hasil pemecahan ditolak, penyebab yang biasa adalah challenge kedaluwarsa: token itu sudah dipakai oleh halaman atau dibiarkan tidak terpakai lebih dari satu menit.
Tidak menggunakan Python, Node.js, PHP atau C#? SDK tersebut hanyalah wrapper di atas HTTP API CapSkip (standar in.php / res.php endpoint dengan method=geetest), sehingga Anda dapat memecahkan GeeTest v3 dari bahasa, framework, atau alat apa pun. Lihat Referensi API GeeTest v3.
Opsi 3: Kirim kode layanan solver Anda yang sudah ada ke CapSkip
Sudah memecahkan GeeTest v3 melalui layanan bayar per captcha seperti 2Captcha, Anti-Captcha atau CapMonster? Anda tidak perlu menulis ulang satu baris pun. Aplikasi CapSkip menyertakan emulator layanan yang berbicara dengan API milik layanan-layanan itu secara lokal: pilih layanan yang Anda pakai, klik Tambahkan ke file hosts, dan setiap permintaan yang sudah dikirim bot, scraper atau alat siap pakai Anda ke sana dijawab oleh CapSkip di komputer Anda sendiri, dengan harga tetap alih-alih tagihan per pemecahan.
Pilih layanan Anda
Buka aplikasi CapSkip dan pilih layanan yang sudah digunakan oleh kode Anda: 2Captcha, RuCaptcha, Anti-Captcha, CapMonster Cloud, CapSolver, DeathByCaptcha, SolveCaptcha atau Captchas.io.
Tambahkan ke file hosts
Satu klik di aplikasi mengarahkan domain layanan tersebut ke CapSkip, sehingga panggilan yang dibuat alat Anda dijawab di komputer Anda sendiri alih-alih keluar ke API berbayar.
Jalankan alat Anda tanpa perubahan
API key yang sama, permintaan yang sama, loop polling yang sama. CapSkip membalas dalam format milik layanan tersebut dan kode Anda mendapatkan nilai challenge, validate dan seccode hasil pemecahan.
Tidak ada yang berubah di bawah ini saat Anda beralih. Ini adalah panggilan yang sama seperti yang dilakukan kode Anda hari ini, hanya saja GeeTest v3 kini dipecahkan secara lokal dan nilai challenge, validate, serta seccode hasil pemecahan dikembalikan oleh CapSkip:
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/id/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":"…"}Pustaka klien bekerja dengan cara yang sama: sebuah objek bergaya Anti-Captcha createTask / getTaskResult pasangan, atau wrapper apa pun yang dibangun di atas salah satu layanan ini, tetap bekerja begitu emulator diaktifkan. Referensi lengkap permintaan dan respons ada di Dokumentasi API CapSkip.
Selengkapnya tentang memecahkan GeeTest v3
Panduan untuk perkakas dan bahasa yang biasanya dipadukan orang dengan demo ini.
Tentang demo GeeTest v3 ini
Halaman ini adalah versi langsung dari Demo GeeTest v3 tempat Anda dapat menguji cara kerja teka-teki geser-untuk-pas dan menyaksikannya dipecahkan secara real time. GeeTest v3 adalah captcha penggeser yang Anda jumpai pada formulir login dan pendaftaran di seluruh dunia: sepotong gambar dipotong keluar dan Anda menyeretnya kembali ke celahnya. Pecahkan dan GeeTest mengembalikan tiga nilai, geetest_challenge, geetest_validate dan geetest_seccode, yang diperiksa server Anda terhadap GeeTest sebelum mempercayai permintaan itu.
Pengembang, penguji, dan insinyur otomatisasi dapat menggunakan halaman uji GeeTest v3 ini untuk menyaksikan challenge terdaftar, penggeser berjalan, dan triplet kembali, serta untuk mengukur cara CapSkip memecahkan GeeTest v3. Baik Anda perlu memecahkan GeeTest sekali maupun mengotomatiskan ribuan pemecahan, CapSkip adalah pemecah GeeTest yang bekerja dengan tiga cara: yang tanpa kode ekstensi pemecah captcha untuk Chrome dan Firefox, dan SDK pemecahan captcha untuk Python, Node.js, PHP, dan C#, serta emulasi siap pakai untuk layanan captcha yang mungkin Anda bayar per pemecahan saat ini, semuanya dengan pemecahan tanpa batas pada satu harga tetap. Ketiganya digerakkan oleh AI desktop yang sama pemecah captcha, diinstal sekali dan berjalan di komputer Anda sendiri, sehingga tidak ada yang diantre di server jarak jauh dan tidak ada yang ditagih per pemecahan.
