GeeTest captcha explained: यह कैसे काम करता है और इसे कैसे solve करें
GeeTest एक captcha vendor है जिसके widgets visitor से एक visual काम करवाते हैं: puzzle piece को gap में खींचना, दिए गए क्रम में icons पर क्लिक करना, या एक छोटी slider हरकत पूरी करना। यह e-commerce sites, login pages और कई क्षेत्रों के app backends पर आम है। यह उन captcha परिवारों में से भी है जिन्हें Scarnox अभी solve नहीं करता। यह guide समझाती है कि GeeTest कैसे काम करता है, उसे automate करना token-based widget से कठिन क्यों है, लोग आम तौर पर कौन-से तरीके अपनाते हैं, और आज Scarnox support कहाँ है।
GeeTest page पर क्या करता है
GeeTest captcha आम तौर पर तीन चरणों में लोड होता है:
- Page GeeTest script शामिल करता है और एक captcha ID के साथ widget बनाता है। कई integrations में वह ID
gtनाम के parameter में पास होती है। - Widget GeeTest server से एक ताज़ा challenge माँगता है। Challenge में एक
challengevalue और वे images या tile positions होते हैं जो puzzle के लिए चाहिए। - जब visitor काम पूरा कर लेता है, तो widget नतीजा site को वापस भेजता है। फिर site का backend form स्वीकार करने से पहले उस नतीजे को captcha vendor के साथ verify करता है।
तीसरा चरण सबसे अहम है। ठीक दिखने वाली value काफ़ी नहीं है, क्योंकि server एक ऐसे नतीजे की जाँच करता है जो एक challenge से बँधा हो और expire होता हो। इसीलिए किसी दूसरे session से कॉपी की गई value फ़ेल होती है, और पुराने नतीजे को दोबारा चलाना काम नहीं करता।
GeeTest token widget से कठिन क्यों है
PopularCaptcha में page को एक token string चाहिए, और एक request वह string लौटा देती है। GeeTest तीन तरीकों से अलग है:
- आउटपुट किसी task का नतीजा है, एक string नहीं। Site कई values की अपेक्षा करती है जो एक साथ आती हैं, और वे सभी एक ही challenge से आनी चाहिए।
- Challenge visual और positional है। Solver को यह ढूँढना होता है कि puzzle piece कहाँ फ़िट होता है या कौन-से icons मेल खाते हैं, फिर ऐसी हरकत बनानी होती है जो किसी इंसान की लगे।
- जाँच नतीजे के साथ व्यवहार को भी देखती है। Speed, path और timing की जाँच हो सकती है। सही position पर एक रोबोटिक ढंग से पहुँचा नतीजा फिर भी reject हो सकता है।
इसीलिए GeeTest solving एक बहु-चरणीय काम है: challenge लाना, image में targets ढूँढना, एक हरकत बनाना, उसे submit करना और फ़ैसला पढ़ना। हर चरण फ़ेल हो सकता है, और चरणों के बीच ज़्यादा इंतज़ार करने पर challenge expire हो जाता है।
आम तरीके
जो लोग GeeTest pages को automate करते हैं, वे आम तौर पर इन तीन में से एक तरीका अपनाते हैं। इनमें से कोई शॉर्टकट नहीं है, और हर एक की अपनी लागत है:
- असली browser चलाएँ। Playwright या Selenium page लोड करते हैं, और आपकी script slider को खिसकाती है। यह उस site पर सबसे अच्छा चलता है जो आपकी अपनी है या जिस test environment का इस्तेमाल आपको करने की अनुमति है। Browser असली है, पर हरकत को फिर भी स्वाभाविक दिखना होगा।
- Image matching। आपका code puzzle का background डाउनलोड करता है, template matching से gap ढूँढता है (उदाहरण के लिए OpenCV से) और drag की दूरी निकालता है। अपने हाथ से बने setup का यह अक्सर सबसे भरोसेमंद हिस्सा होता है, और vendor के image layout बदलने पर यह टूट जाता है।
- Human-in-the-loop या solving service। कोई व्यक्ति या managed service challenge हल करके नतीजा लौटाती है। Scarnox GeeTest के लिए यह विकल्प देने की योजना बना रहा है, पर यह अभी live नहीं है।
जो भी चुनें, दायरा ईमानदारी से रखें: अपने flows, ऐसे test environments जिन्हें इस्तेमाल करने की अनुमति है, या ऐसा public data जिसे इकट्ठा करने की अनुमति है, उसी पर automation करें।
Captcha ID ढूँढना
शुरू करने के लिए आपको code की ज़रूरत नहीं। DevTools खोलें, page रीलोड करें और Network tab में geetest या gt खोजें। Widget लोड करने वाली पहली request आम तौर पर captcha ID दिखाती है। एक छोटी script उसे रिकॉर्ड कर सकती है, जो तब उपयोगी है जब आप यह पता लगाना चाहें कि कोई page अपना widget कब बदलता है:
import re
import requests
html = requests.get("https://example.com/login", timeout=30).text
match = re.search(r"gt['\"]?\s*[:=]\s*['\"]([a-f0-9]{32})['\"]", html)
print("captcha id:", match.group(1) if match else "not found")
ऊपर का pattern gt के पास 32-अक्षर वाले hexadecimal मान को खोजता है। Vendors अपना markup बदलते रहते हैं, इसलिए इसे शुरुआती बिंदु मानें, और आउटपुट को उस page से मिलाकर जाँचें जिसे आप टेस्ट कर रहे हैं।
Scarnox support कहाँ है
किसी प्रोजेक्ट की योजना बनाते समय इस पर साफ़ रहें:
- आज उपलब्ध: PopularCaptcha, proxyless, और अपने proxy के साथ।
- जल्द आ रहा है: GeeTest, reCAPTCHA v2 और v3, Cloudflare Turnstile, AWS WAF और Arkose। जब तक किसी GeeTest solve को live के रूप में सूचीबद्ध न किया जाए, उस पर निर्भर production flow न बनाएँ।
अगर आपके प्रोजेक्ट को अभी GeeTest चाहिए, तो व्यावहारिक रास्ता है browser और image वाले चरण खुद बनाना, उन pages के लिए जिन्हें आप टेस्ट करने के लिए अधिकृत हैं, और अपने code को API पर स्विच करने के लिए तैयार रखना जब support आए। तब तक आप खाता बनाएँ और मुफ़्त ट्रायल क्रेडिट से शुरू करें, कार्ड की ज़रूरत नहीं। इससे आपके पास टेस्ट करने के लिए एक काम करता PopularCaptcha flow होगा, और बाद में GeeTest जोड़ने की जगह भी। मौजूदा दरों के लिए मौजूदा pricing देखें।
वैध उपयोग
- अपने login या checkout flow की testing, जहाँ captcha automated regression tests को रोकता है।
- Accessibility जाँच, जो पुष्टि करे कि जो visitor visual puzzle हल नहीं कर सकता उसके पास form पूरा करने का कोई और रास्ता है।
- ऐसी site की निगरानी जिसे देखने की आपको अनुमति है, जैसे deploy के बाद जाँचना कि widget अब भी लोड होता है।
Captcha automation का इस्तेमाल fake accounts बनाने, login form पर हमला करने या सीमित stock खरीदने के लिए न करें। ऐसे उपयोग अधिकांश sites के नियम तोड़ते हैं और Scarnox इन्हें support नहीं करता।