सपोर्टेड टास्क टाइप
API विधियाँ
आर्टिकल
ट्यूटोरिअल
GitHub
Tutorial pages

AntiGate टास्क के माध्यम से किसी भी कैप्चा को कैसे भेदें

एंटीगेट टास्क ट्यूटोरियल का एक नया वीडियो संस्करण यहाँ उपलब्ध है।

वर्षों के अनुसंधान और विकास के बाद हम पेश करना चाहेंगे एक ऐसा यूनिवर्सल समाधान, जो इंसानों द्वारा बनाए गए कैप्चा गेट्स में से निकलने में करेगा आपके रोबॉट्स की मदद। इसे हम "AntiGate" कहते हैं और ये वे सिनेरियो टेम्पलेट हैं, जिनका इस्तेमाल हमारे असली कर्मचारी सटीक टास्क पूरा करने के लिए करते हैं।

एक निश्चित समय पर आपकी ऐप को किसी नयी तरह की कैप्चा, अस्पष्ट ब्राउज़र स्क्रिप्ट, या फ़िर किसी और चीज़ वाली "गेटवे" ऑटोमेशन सुरक्षा मिलती है। यहीं पर AntiGate टास्क काम में आती हैं। किसी असली, हाड़-मांस के इंसान द्वारा संचालित ब्राउज़र सेशन को निर्मित करने का काम आप हमारे किसी कर्मचारी को जो सौंप देते हैं।
  • सबसे पहले किसी टेम्पलेट का चयन कर लें। आप किसी मौजूदा टेम्पलेट का उपयोग भी कर सकते हैं अथवा अपना खुद का टेम्पलेट भी बना सकते हैं। एक टेम्पलेट कर्मचारियों द्वारा कार्यान्वित किए जाने वाले चरण-दर-चरण निर्देशों का एक सेट होता है।
  • उसके बाद टेम्पलेट की आवश्यकतानुसार अतिरिक्त डेटा मुहैया कराएँ, जैसे कि भरे जाने वाले किसी इनपुट की वैल्यू, किसी इनपुट का CSS सिलेक्टर, या फ़िर हमारे द्वारा नेविगेट किया जाने वाला वेब पता। टेम्पलेट के बारे में हम कुछ ही देर में थोड़ी और विस्तार से बात करेंगे।
  • तीसरा व वैकल्पिक – प्रॉक्सियां। इनकी ज़रूरत आपको तब पड़ती है, जब कोई वेबसाइट सेशन की हर कुकी को किसी सटीक IP पते के साथ जोड़कर देखती है।
इन तीनों के साथ आप हमारे API के माध्यम से एक टास्क बना सकते हैं। हमारे ख़ास ब्राउज़र प्लगइन के माध्यम से कोई कर्मचारी आपकी वेबसाइट में नेविगेट करके सभी सिनेरियो चरणों को मैन्युअली या ऑटोमैटिकली कार्यान्वित कर देता है। स्क्रिप्ट के अंत में हम कूकीज, localStorage वैल्यूज़, ब्राउज़र फिंगरप्रिंट जैसी उनके ब्राउज़र सेशन की समूची जानकारी लेकर उसे आपकी ऐप में वापिस भेज देते हैं। फ़िर तो आपको बस इस डेटा के माध्यम से हमारे कर्मचारी के सेशन को बहाल कर किसी मानव यूज़र के तौर पर ऑपरेशन जारी ही रखने होते हैं। है न यह कमाल की बात? :)

AntiGate टेम्पलेट क्या होते हैं?

एक AntiGate टेम्पलेट उस सटीक सिनेरियो को परिभाषित करता है, जिससे हमारे कर्मचारियों को गुज़रना चाहिए। टेम्पलेट में कुछ चरण शामिल होते हैं, जिन्हें क्रमानुसार कार्यान्वित किया जाता है। किसी एक चरण के पूरा हो जाने पर कर्मचारी अगले चरण पर बढ़ जाता है। सभी चरणों के पूरा हो जाने पर टास्क समाप्त हो जाती है व कर्मचारी के सेशन का स्नैपशॉट लेकर उसे वापिस आपकी ऐप में भेज दिया जाता है।

उसमें किस तरह के चरण शामिल होते हैं?
  • किसी टेक्स्ट इनपुट फील्ड को ऑटोमैटिकली या मैन्युअली भर दें।
  • पेज पर टेक्स्ट सैंपल के दिखाई देने (या गायब हो जाने) का इंतज़ार करें।
  • CSS द्वारा परिभाषित किसी DOM एलिमेंट के पेज में दिखाई देने (या गायब हो जाने) का इंतज़ार करें।
  • कर्मचारी के मौजूदा ब्राउज़र URL पते में कीवर्ड के दिखाई देने (या गायब हो जाने) का इंतज़ार करें।
टेम्पलेट का "कर्मचारियों के लिए विवरण" वाला टेक्स्ट फील्ड उन बाकी के चरणों की भी व्याख्या कर सकता है, जिनकी आपको किसी कर्मचारी से अपेक्षा है। उदाहरण के तौर पर: "किसी कैप्चा को हल कर सबमिट बटन दबा दें"।
चलिए एक उदाहरण पर नज़र डालते हैं। टेस्टिंग के लिए निःशुल्क टेम्पलेट बनाने के लिए डेवलपर सेंटर चले जाएँ। आप बेफ़िक्र रहे, ऐसा करने से कोई नुकसान नहीं होगा!
टेम्पलेट जोड़ने के लिए क्लिक करें
किसी उदाहरण को लोड करने के लिए क्लिक करें
चरणों वाले सेक्शन को देख लें
आपने किसी प्रदर्शन वाले उदाहरण को लोड किया है। आप इसे अपने एकाउंट में सेव कर इसे बाद में खुद टेस्ट करके देख सकते हैं। आइए टेम्पलेट विशेषताओं की समूची सूची से आपका परिचय कराते हैं:
  • टेम्पलेट का नाम. सेव हो जाने पर इसमें बदलाव नहीं किए जा सकते। इसके प्रकाशित हो जाने के बाद आपका टेम्पलेट API में इसी नाम से उपलब्ध हो जाता है।
  • ग्राहकों के लिए विवरण। सार्वजानिक टेम्पलेट हमारी टेम्पलेट सूची में उपलब्ध हैं।
  • कर्मचारियों के लिए विवरण। यह वह टेक्स्ट होता है, जो हमारे कर्मचारियों को पेज के ऊपर दिखाई देता है।
    कर्मचारियों के इंटरफ़ेस का उदाहरण
  • वेरिएबल। यह उन वेरिएबल नामों की सूची है, जिनका आप स्थायी वैल्यूज़ की जगह इस्तेमाल कर सकते हैं। इस उदाहरण में हमारे पास 2 वेरिएबल, "लॉगइन" और "पासवर्ड", हैं। इन दोनों का इस्तेमाल पहले और दूसरे चरण में प्रदर्शन वाले साइन इन फॉर्म को भरने के लिए किया जाता है। ऐसा करके आप टेम्पलेट में कोई स्थायी लॉगइन और पासवर्ड को हार्डकोड करने के बजाय API के माध्यम से इन वैल्यूज़ को मुहैया करा सकते हैं।
    पहले और दूसरे चरणों में इस्तेमाल किए गए वेरिएबल
  • कर्मचारी के चरण। यहाँ आप सेनारियो चरणों के क्रम को संपादित कर उसमें बदलाव कर सकते हैं। अपने उदाहरण में हम कुछ ऐसा करते हैं:
    1. टेक्स्ट फील्ड को CSS सिलेक्टर "#login" से ऑटोमैटिकली भर दें। टेक्स्ट फील्ड की वैल्यू को "लॉगइन" वेरिएबल के माध्यम से परिभाषित किया जाता है।
    2. टेक्स्ट फील्ड को CSS सिलेक्टर "#password" से ऑटोमैटिकली भर दें। टेक्स्ट फील्ड की वैल्यू को "पासवर्ड" वेरिएबल के माध्यम से परिभाषित किया जाता है।
    3. पेज पर किसी कण्ट्रोल टेक्स्ट के दिखाई देने का इंतज़ार करें। इसे स्थायी तौर पर "लॉगइन कर टेस्ट पास किया" पर सेट किया हुआ है।

अब आप टेम्पलेट को सेव कर सकते हैं, जिसके बाद वह आपके डेवलपर सेंटर में दिखाई दे जाएगा। गौरतलब है कि इसका "सैंडबॉक्स" स्टेटस होता है, जिसका मतलब है कि यह केवल आपके लिए उपलब्ध होता है और API में उपलब्ध नहीं होता है। अब आप अपने नये-नवेले टेम्पलेट को कुछ इस तरह टेस्ट करके देख सकते हैं जैसे आप अपने ही कर्मचारी हों।

टेस्टिंग टेम्पलेट

अब आपको Chrome ब्राउज़र का इस्तेमाल करना होगा। हम आपको इस ब्राउज़र में एक नयी यूज़र प्रोफाइल बनाने का सुझाव देंगे, क्योंकि वहाँ हमें अपना एक ऐसा प्लगइन इनस्टॉल करना होगा, जो आपकी प्रोफाइल की कूकीज़ को एक्सेस कर सके।
कर्मचारियों के इंटरफ़ेस का उदाहरण
अब अपने टेम्पलेट कार्ड पर "test" बटन दबा दें।
निर्देशों का पालन करते हुए अपने प्लेटफ़ॉर्म के लिए प्लगइन को डाउनलोड कर लें। उसके बाद इस डाउनलोड को लागू करने के लिए पेज को रीलोड करें, "लॉगइन" और "पासवर्ड" वेरिएबल को किसी भी वैल्यू से भर दें और फ़िर "टेस्ट लॉन्च करें" वाला बटन दबा दें। ऐसा करने पर एक नया पेज खुल जाएगा, जो कुछ ऐसा दिखता होगा:

एड्रेस बार के पास एक नीले रंग की बार होती है, जिसे प्लगइन लक्षित पेज के ऊपर जोड़ देता है। इसी के माध्यम से कर्मचारियों को अपने असाइनमेंट के बारे में पता चलता है व वे अपनी टास्क को कार्यान्वित कर पाते हैं।

साथ ही, गौरतलब है कि लॉगइन और पासवर्ड वाले फील्ड में वेरिएबल भरते समय वे छिपे रहते हैं। ऐसा जानबूझकर किया जाता है। हालांकि डेवलपर के कंसोल के माध्यम से कर्मचारियों के पास टास्क डेटा का पूरा-पूरा एक्सेस होता है, उनमें से 99.99% को इस बात से कोई फ़र्क ही नहीं पड़ता कि पर्दे के पीछे आख़िर चल क्या रहा है।
reCAPTCHA हल करने के बाद "साइन इन" वाला बटन दबा दें। टेम्पलेट का अंतिम चरण "WAIT_CONTROL_TEXT_PRESENT" पास हो जाता है। प्लगइन "लॉगइन के साथ टेस्ट पास हुआ " कण्ट्रोल फ्रेज़ की खोज करता है, जिसे स्थायी रूप से आपके टेम्पलेट में परिभाषित किया गया होता है। टैब अपने आप ही बंद हो जाता है व सेशन का स्नैपशॉट नतीजों वाले फील्ड में प्रदर्शित हो जाता है।
नतीजों का उदाहरण

इसी स्नैपशॉट डेटा को API से भी प्राप्त किया जा सकता है। लेकिन अपने टेम्पलेट को API में उपलब्ध कराने के लिए पहले हमें उसे पब्लिश करना होता है।

पब्लिशिंग टेम्पलेट

किसी टेम्पलेट को प्रकाशित करते समय आपके पास 2 विकल्प होते हैं: उसे निजी रखना या सार्वजानिक बनाना।
  • निजी टेम्पलेट केवल आपकी API कुंजी के साथ ही उपलब्ध होते हैं। अन्य ग्राहक उनका इस्तेमाल नहीं कर सकते। उन्हें नवीनीकृत कर उनका प्रकाशन करने की लागत: 1 डॉलर।
  • सार्वजानिक टेम्पलेट सभी के लिए उपलब्ध होते हैं। इस टेम्पलेट के माध्यम से प्रत्येक ग्राहक द्वारा ख़र्च की गई धनराशि का 5 प्रतिशत हिस्सा आपको मिल जाता है। आपके टेम्पलेट में कोई गड़बड़ आ जाने की स्थिति में हमारे ग्राहकों की मदद हेतु आपको कुछ संपर्क जानकारी मुहैया करानी होगी। समीक्षा कर प्रकाशन करने की लागत: 1 डॉलर।
हम हरेक टेम्पलेट की अच्छे से समीक्षा करते हैं। उत्पादन मोड में सफलतापूर्वक स्विच करने के लिए आपको कुछ बुनियादी बातों का ध्यान रखना होगा:
  • वह किसी तरह की कोई भी गैरकानूनी गतिविधि नहीं होनी चाहिए।
  • टेम्पलेट को मौजूदा टेम्पलेट की नक़ल कर नहीं बनाया जाना चाहिए।
  • डमी या टेस्ट टेम्पलेट जमा न करें।
  • समीक्षा के लिए नमूने के तौर पर कोई वेब पता एवं कुछ वेरिएबल वैल्यू मुहैया कराएँ। हम एक टेस्ट लॉन्च करेंगे, जिसके दौरान सभी चरण सफलतापूर्वक पूरे हो जाने चाहिए।

API अनुरोध

ऊपर दिए AntiGate टेम्पलेट के लिए API को भेजे जाने वाला टास्क निर्माण अनुरोध दिखने में इतना सरल-सा होगा:

curl -i -H "Accept: application/json" \
     -H "Content-Type: application/json" \
     -X POST -d '{
    "clientKey":"YOUR_API_KEY",
    "task":
        {
            "type":"AntiGateTask",
            "websiteURL":"https://anti-captcha.com/demo/?page=recaptcha_v2_textarea",
            "templateName":"Demo sign-in at anti-captcha.com #123456",
            "variables": {
                "login":"some value",
                "password":"some value"
            }
        }
}' https://api.anti-captcha.com/createTask

यानी कि आप टेम्पलेट भरने के लिए "templateName" और "variables" मानदंडों को स्किप कर जाते हैं।

टास्क नतीजों का इस्तेमाल करते हुए

सफलतापूर्वक पूरी की गईं AntiGate टास्क उस समाधान पर वापिस ले जाती हैं जिसमें "cookies", "localStorage", "fingerprint" और "url" शामिल हैं।आपके सॉफ्टवेयर को इस अनुरोध में "कूकीज़" के माध्यम से नेविगेट करते हुए "url" तक जाना होगा व ब्राउज़र के यूज़र-एजेंट के लिए कम से कम "fingerprint.self.navigator.userAgent" वैल्यू का उपयोग करना होगा। अधिक जटिल वेबसाइट ज़रूरी डेटा को localStorage में जमा करती हैं, जो कि कूकीज़ का एक तरह का आधुनिक वर्शन होता है। ऐसे में आपको कोई भी JavaScript चलाने से पहले इस डेटा को पेज में इंजेक्ट करना होगा। ऐसा Puppeteer जैसे डेवलपमेंट एनवायरनमेंट में किया जा सकता है। इस विषय में शायद एक-आधा लेख और लिखा जाएगा।

आपके अपने टेम्पलेट बनाते हुए

उदाहरण वाले टेम्पलेट को लोड किए बगैर उपर्युक्त चरणों का पालन करें। सभी डिटेल्स को अच्छी तरह भरते हुए चरणों को सावधानीपूर्वक जोड़ दें। गौरतलब है कि सभी चरणों को क्रमानुसार कार्यान्वित किया जाता है। प्लगइन अगले चरण के कार्यान्वयन की तब तक अनुमति नहीं देगा, जब तक कि मौजूदा चरण पूरा न हो जाए। अपने टेम्पलेट को आप कभी भी सेव कर उसे कर्मचारी के ब्राउज़र प्लगइन के साथ टेस्ट कर सकते हैं।

मूल्य निर्धारण

इस समय हम शुल्क को $2 प्रति 1000 टास्क पर निर्धारित कर देते हैं। इसके अतिरिक्त, टास्क क्रियान्वयन के हर सेकंड में टास्क शुल्क के साठवें हिस्से की लागत आती है। उदाहरण के तौर पर टास्क में $0.002 की लागत आती है व उसे हल करने में कर्मचारी को 20 सेकंड का समय लगा।
अंतिम शुल्क $0.00266 = 0.002 + (0.002 / 60 * 20) होगा।