GeeTest v3 कैसे हल करें
ऊपर का box एक live है GeeTest v3 challenge, slide-to-fit पज़ल। यह पेज GeeTest v3 हल करने और इसके लौटाए तीन वैल्यू पाने के तीन आसान तरीके दिखाता है, geetest_challenge, geetest_validate और geetest_seccode: अपने आप CapSkip ब्राउज़र एक्सटेंशन के साथ, अपने कोड में CapSkip SDK के साथ, या जिस कैप्चा सेवा को आपके टूल पहले से कॉल करते हैं उसे CapSkip पर रूट करके। CapSkip आपके डिवाइस पर लोकल रूप से चलता है, इसलिए कोई प्रति-हल शुल्क नहीं है और कुछ भी आपकी मशीन से बाहर नहीं जाता।
विकल्प 1: ब्राउज़र एक्सटेंशन के साथ GeeTest v3 हल करें
GeeTest v3 बायपास करने का सबसे आसान तरीक़ा है CapSkip कैप्चा सॉल्वर extension Chrome और Firefox के लिए। यह puzzle में gap ढूँढता है, टुकड़े को human जैसी गति से जगह पर खींचता है और साइट को एक वैध seccode सौंपता है, कोई code लिखने की ज़रूरत नहीं।
extension इंस्टॉल करें
CapSkip को Chrome Web Store या Firefox Add-ons से जोड़ें। यह Brave, Edge, Opera और Vivaldi में भी काम करता है।
CapSkip ऐप चलाएँ
CapSkip desktop app इंस्टॉल करें और खोलें। यह हल आपके अपने डिवाइस पर करता है और extension के साथ जुड़ता है।
यह अपने आप हल कर देता है
इस page को रीलोड करें और CapSkip आपके लिए puzzle piece को खाली जगह में सरका देता है। नियंत्रण अपने हाथ में रखना पसंद करते हैं? कभी भी manual mode पर स्विच करें।
विकल्प 2: CapSkip SDK से GeeTest v3 हल करें
ऑटोमेशन, कोई स्क्रैपर या कोई बॉट बना रहे हैं? इस्तेमाल करें CapSkip captcha हल करने वाला SDK GeeTest v3 को इससे हल करने के लिए Python, Node.js, PHP या C#। आप इस page का पास करते हैं gt, एक नया challenge और पेज URL, और CapSkip हल किया गया challenge, validate और seccode मान लौटाता है जिन्हें आप किसी असली की तरह सबमिट कर सकते हैं।
e3a600a044ef0ad51749da5c451adca0https://capskip.com/hi/captcha-demo/geetest-v3/शुरू करने से पहले
CapSkip लोकल रूप से हल करता है। इसे डाउनलोड करके चलाएँ CapSkip desktop app और इसे बैकग्राउंड में खुला रखें। SDK इससे इस पर बात करता है 127.0.0.1:8080, इसलिए कोई cloud कॉल नहीं और कोई प्रति-हल शुल्क नहीं।
challenge एक्सपायर हो जाता है
reCAPTCHA site key के विपरीत, GeeTest v3 को दो मानों की ज़रूरत होती है। वह gt ऊपर static है और कभी नहीं बदलता, लेकिन challenge single use है और लगभग एक मिनट बाद मर जाता है, और widget के इसे load करते ही यह खर्च हो जाता है। हर हल से ठीक पहले एक नया fetch करें, जो बिल्कुल वही है जो step 2 करता है।
SDK इंस्टॉल करें
अपने प्रोजेक्ट में आधिकारिक CapSkip client जोड़ें।
pip install capskipnpm install capskipcomposer require capskip/capskipdotnet add package CapSkipएक ताज़ा gt और challenge पाएँ
यह पेज अपना GeeTest challenge server साइड रजिस्टर करता है और इसे जिस nonce की ज़रूरत है उसे एक inline में प्रिंट करता है capskipCaptcha object। उसे पढ़ें, फिर page से अपना खुद का एक challenge मांगें ताकि widget जो इस्तेमाल कर रहा है वह अछूता रहे।
import json, re, requests
PAGE = "https://capskip.com/hi/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/hi/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/hi/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/hi/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}");आपको पेज का मिलता है gt साथ में एक ताज़ा 32 अक्षर वाला challenge. इसे तुरंत हल करें।
GeeTest v3 हल करें और तीन values पाएँ
पास करें gt, challenge जिसे आपने अभी register किया और इस पेज का url को geetest(). CapSkip puzzle के टुकड़े को gap में खींचता है और हल किया गया triplet लौटाता है।
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/hi/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/hi/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/hi/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/hi/captcha-demo/geetest-v3/");
Console.WriteLine(result.Challenge); // geetest_challenge
Console.WriteLine(result.Validate); // geetest_validate
Console.WriteLine(result.Seccode); // geetest_seccodeआपको मिलता है challenge, validate और seccode, सबमिट करने के लिए तैयार।
तीनों मानों का उपयोग करें
triplet को उन्हीं नामों के तहत वापस पोस्ट करें जिन्हें widget खुद इस्तेमाल करता है। इस page पर वह वही admin-ajax call है जो जाँचें step करता है, जो हरा होने से पहले seccode को GeeTest के मुकाबले सत्यापित करता है।
// 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.अन्य GeeTest v3 साइटों पर CapSkip का इस्तेमाल
कहीं भी GeeTest v3 हल करने के लिए आपको पेज से तीन चीज़ें चाहिए:
- gt: public captcha ID, प्रति site स्थिर। यह है
gtwidget की कॉल्स पर query parameter जो जाती हैंapi.geetest.com/gettype.phpऔरget.php. - challenge: एक single-use value जो site के अपने init या register request से आता है, आम तौर पर के बगल में एक छोटी JSON response
gt। ताज़ा challenge पाने के लिए हर हल से पहले उस एक request को दोबारा चलाएँ। - Page URL: page का पूरा पता।
क्षेत्रीय API सर्वर और प्रॉक्सी
कुछ साइटें एक क्षेत्रीय GeeTest एंडपॉइंट से पिन होती हैं जैसे कि api-na.geetest.com। इसे ऐसे पास करें api_server HTTP API पर जब ऐसा हो। एक proxy (proxy और proxytype) भी समर्थित है, जो तब मदद करता है जब साइट चैलेंज को आपके IP से बाँधती है।
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_seccodeअगर कोई हल अस्वीकृत होकर वापस आता है, तो सामान्य कारण एक होता है बासी challenge: या तो इसे page पहले ही इस्तेमाल कर चुका था या यह एक मिनट से ज़्यादा अनुपयोगी पड़ा रहा।
Python, Node.js, PHP या C# इस्तेमाल नहीं कर रहे? SDKs बस CapSkip HTTP API के ऊपर wrappers हैं (मानक in.php / res.php endpoints के साथ method=geetest), इसलिए आप GeeTest v3 हल कर सकते हैं कोई भी भाषा, framework या tool। देखें GeeTest v3 API reference.
विकल्प 3: अपना मौजूदा solver-service कोड CapSkip को भेजें
पहले से किसी pay-per-captcha सेवा जैसे कि इसके माध्यम से GeeTest v3 हल कर रहे हैं 2Captcha, Anti-Captcha या CapMonster? आपको एक भी पंक्ति फिर से लिखने की ज़रूरत नहीं है। CapSkip ऐप में शामिल है एक सर्विस एमुलेटर जो उन services' के अपने APIs को लोकल रूप से बोलता है: जो service आप इस्तेमाल करते हैं उसे चुनें, क्लिक करें hosts फ़ाइल में जोड़ें, और आपका बॉट, स्क्रैपर या तैयार tool उसे जो भी request पहले से भेजता है उसका जवाब CapSkip आपकी अपनी मशीन पर देता है, प्रति-हल बिल के बजाय एक फिक्स्ड कीमत पर।
अपनी service चुनें
CapSkip app खोलें और वह service चुनें जिससे आपका code पहले से बात करता है: 2Captcha, RuCaptcha, Anti-Captcha, CapMonster Cloud, CapSolver, DeathByCaptcha, SolveCaptcha या Captchas.io।
hosts फ़ाइल में जोड़ें
app में एक क्लिक उस service's के domain को CapSkip पर पॉइंट कर देता है, इसलिए आपके टूल द्वारा की गई कॉल्स किसी पेड API पर बाहर जाने के बजाय आपकी अपनी मशीन पर उत्तरित होती हैं।
अपना tool बिना बदले चलाएं
वही API key, वही request, वही polling loop। CapSkip उस service के अपने format में जवाब देता है और आपके कोड को हल किया गया challenge, validate और seccode वैल्यू वापस मिल जाती हैं।
स्विच करने पर नीचे कुछ नहीं बदलता। यह वही call है जो आपका code आज करता है, बस अब GeeTest v3 लोकल रूप से हल होता है और हल किए गए challenge, validate और seccode values 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/hi/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":"…"}क्लाइंट लाइब्रेरीज़ उसी तरह काम करती हैं: एक Anti-Captcha शैली createTask / getTaskResult pair, या इन सेवाओं में से किसी एक पर बना कोई भी wrapper, emulator चालू होने के बाद काम करता रहता है। पूरा request और response reference मौजूद है the CapSkip API दस्तावेज़.
GeeTest v3 हल करने पर और
उन tools और भाषाओं के लिए guides जिन्हें लोग आमतौर पर इस demo के साथ जोड़ते हैं।
इस GeeTest v3 demo के बारे में
यह पेज एक लाइव है GeeTest v3 demo जहाँ आप जाँच सकते हैं कि slide-to-fit puzzle कैसे काम करता है और उसे real time में हल होते देख सकते हैं। GeeTest v3 वह slider captcha है जिससे आप दुनिया भर के login और signup forms पर मिलते हैं: किसी तस्वीर में से एक टुकड़ा काट दिया जाता है और आप उसे वापस उसी gap में खींचते हैं। इसे हल करें और GeeTest तीन values लौटाता है, geetest_challenge, geetest_validate और geetest_seccode, जिसे आपका server request पर भरोसा करने से पहले GeeTest के मुकाबले जांचता है।
डेवलपर, टेस्टर और ऑटोमेशन इंजीनियर इस GeeTest v3 टेस्ट पेज का इस्तेमाल challenge को रजिस्टर होते, slider को फ़ायर होते और triplet को वापस आते देखने, और यह बेंचमार्क करने के लिए कर सकते हैं कि CapSkip GeeTest v3 को कैसे हल करता है। चाहे आपको GeeTest एक बार हल करना हो या हज़ारों हल ऑटोमेट करने हों, CapSkip एक GeeTest solver जो तीन तरीकों से काम करता है: no-code कैप्चा सॉल्वर एक्सटेंशन Chrome और Firefox के लिए, और कैप्चा हल SDK Python, Node.js, PHP और C# के लिए, और उन captcha services की drop-in emulation जिनके लिए आप आज शायद प्रति हल भुगतान कर रहे हैं, सब कुछ एक फिक्स्ड कीमत पर असीमित हल के साथ। तीनों एक ही desktop AI से संचालित होते हैं कैप्चा सॉल्वर, एक बार इंस्टॉल किया गया और आपकी अपनी मशीन पर चल रहा, इसलिए किसी remote server पर कुछ भी queue नहीं होता और प्रति-हल कुछ भी बिल नहीं होता।
