प्रॉक्सी बनाम प्रॉक्सीलेस कैप्चा सॉल्विंग: किस task type की ज़रूरत है?
Scarnox PopularCaptcha को दो रूपों में देता है: proxyless, जहां Scarnox कैप्चा अपने ही नेटवर्क से हल करता है, और proxy वैरिएंट, जहां आप वह प्रॉक्सी भेजते हैं जिसका आपका बॉट उपयोग करता है। दोनों एक ही रिस्पॉन्स शेप में टोकन लौटाते हैं, और दोनों में सॉल्व विफल होने पर कोई शुल्क नहीं लगता। रिक्वेस्ट में केवल प्रॉक्सी का फर्क है।
ज़्यादातर साइटों के लिए proxyless सही शुरुआत है। प्रॉक्सी तभी भेजें जब साइट टोकन को किसी IP पते से बांधती हो।
दो task types
| टास्क टाइप | आप क्या भेजते हैं |
|---|---|
PopularCaptchaTaskProxyless | sitekey और पेज URL |
PopularCaptchaTask (proxy वैरिएंट) | sitekey, पेज URL और आपका proxy |
दोनों PopularCaptcha टास्क हैं। रिक्वेस्ट का बाकी हिस्सा, रिस्पॉन्स और टोकन का उपयोग एक जैसा है।
proxyless से शुरू करें
Proxyless सॉल्व Scarnox के अपने नेटवर्क पर चलते हैं। इंटीग्रेशन सबसे सरल है जो आप लिख सकते हैं, और ज़्यादातर साइटों पर टोकन इस बात से स्वतंत्र काम करता है कि बाद में कौन सा IP उसे सबमिट करता है। अगर पक्का न हो कि आपको कौन सा चाहिए, तो यहीं से शुरू करें:
{
"captcha_type": "PopularCaptchaTaskProxyless",
"site_key": "10000000-ffff-ffff-ffff-000000000001",
"site_url": "https://example.com/signup"
}
जब टोकन IP से बंधा हो, तब प्रॉक्सी भेजें
कुछ साइटें जांचती हैं कि जिस IP ने कैप्चा हल किया, वही IP फॉर्म सबमिट करता है। लक्षण साफ़ है: टोकन बिना एरर के आते हैं, पर साइट हर बार उन्हें अस्वीकार करती है। समाधान है कि सॉल्व उसी प्रॉक्सी से करें जिसे आपका बॉट सत्र के बाकी हिस्से के लिए उपयोग करता है:
{
"captcha_type": "PopularCaptchaTask",
"site_key": "10000000-ffff-ffff-ffff-000000000001",
"site_url": "https://example.com/signup",
"proxy": "http://user:pass@203.0.113.10:8080"
}
प्रॉक्सी का फ़ॉर्मेट http://user:pass@host:port है। सॉल्व और सबमिट दोनों के लिए एक ही प्रॉक्सी इस्तेमाल करें, और पूरे सत्र के लिए उसे स्थिर रखें। सॉल्व और सबमिट के बीच प्रॉक्सी बदलने से IP का मिलान टूट जाता है।
कैसे तय करें
इन सवालों को क्रम से जांचें:
- क्या टोकन किसी दूसरी मशीन से सबमिट करने पर काम करता है? अगर हां, तो proxyless उपयोग करें।
- क्या साइट टोकन तभी अस्वीकार करती है जब सबमिट करने वाला IP, सॉल्व करने वाले IP से अलग हो? अगर हां, तो प्रॉक्सी भेजें।
- क्या साइट एक सेशन कुकी या डिवाइस जांच इस्तेमाल करती है जो एक IP से बंधी है? अगर हां, तो प्रॉक्सी भेजें और पूरे सत्र के लिए वही IP रखें।
दोनों को मुफ्त ट्रायल पर परखें, फिर प्रतिबद्ध हों। खाता बनाएं और मुफ्त ट्रायल क्रेडिट के साथ शुरू करें, कार्ड की ज़रूरत नहीं, फिर हर टाइप के साथ एक बार वही फ़्लो चलाएं।
अगर आपकी प्रॉक्सी काम नहीं कर रही
असफल सॉल्व मुफ्त है। अगर प्रॉक्सी डेड है या टार्गेट ने उसे ब्लॉक किया है, तो सॉल्व विफल होता है और उसका शुल्क नहीं लगता। रन से पहले प्रॉक्सी खुद जांचें, उसका फ़ॉर्मेट देखें, और सुनिश्चित करें कि टार्गेट उसकी IP रेंज को ब्लॉक नहीं करता। जो प्रॉक्सी ब्राउज़र के लिए काम करती है पर सॉल्व में विफल होती है, वह आम तौर पर फ़ॉर्मेट की समस्या है।
प्रॉक्सी के क्रेडेंशियल लॉग से बाहर रखें
पासवर्ड वाला प्रॉक्सी पता एक सीक्रेट है। उसे environment variable या secret manager में रखें। उसे लॉग में प्रिंट न करें, कमिट न करें, और बग रिपोर्ट में न चिपकाएं। डीबग के लिए सॉल्व रिक्वेस्ट लॉग करते हैं, तो पहले proxy फ़ील्ड हटा दें।
वैरिएंट के लिए प्रॉक्सी चुनना
सॉल्व आपके भेजे किसी भी प्रॉक्सी से काम करता है, पर टोकन तभी उपयोगी है जब वही IP फॉर्म सबमिट करे। पूरे सत्र के लिए एक ऐसा रेज़िडेंशियल या स्टैटिक पता इस्तेमाल करें जिसे आप नियंत्रित करते हैं, हर रिक्वेस्ट पर बदलने वाला पूल नहीं। जो साइटें टोकन को IP से बांधती हैं, वे अक्सर सत्र को भी बांधती हैं, इसलिए रोटेटिंग पूल दो तरह से फ्लो तोड़ता है।
गति का क्या?
दोनों वैरिएंट एक ब्लॉकिंग रिक्वेस्ट से टोकन लौटाते हैं, बिना polling लूप के। टाइमआउट भी एक जैसा है: लगभग 185 सेकंड। वैरिएंट IP वाले सवाल से चुनें, गति से नहीं।
सत्र और प्रॉक्सी व्यवहार में
सत्र की पहली रिक्वेस्ट से आखिरी तक एक ही प्रॉक्सी इस्तेमाल करें। एक आम फ़्लो साइन-अप पेज लोड करता है, कैप्चा सॉल्व करता है, और फॉर्म सबमिट करता है। अगर पेज लोड एक पते से जाता है और सॉल्व दूसरे से, तो IP-बंधी साइट टोकन अस्वीकार कर सकती है, भले ही बाकी सब सही दिखे।
अपने कोड में प्रॉक्सी की एक ही सेटिंग रखें, और उसे हर उस चरण को दें जो साइट को छूता है। अगर काम के बाकी हिस्से स्क्रैपिंग के लिए प्रॉक्सी बदलते हैं, तो कैप्चा फ़्लो को अपनी अलग स्थिर प्रॉक्सी दें। दोनों को मिलाना उन सबसे आम कारणों में से है कि टेस्टिंग में चलने वाला टोकन प्रोडक्शन में विफल हो जाता है।
Proxy फ़ील्ड केवल उसी वैरिएंट पर सेट करें जो प्रॉक्सी इस्तेमाल करता है। proxyless टास्क टाइप के साथ प्रॉक्सी भेजने से सॉल्व बेहतर नहीं होता, और लॉग पढ़ते समय यह पहचानना मुश्किल हो जाता है कि किस मोड से रन हुआ था।
सही जवाब के लिए लॉग पढ़ना
अगर पक्का न हो कि साइट को कौन सा मोड चाहिए, तो एक ही पेज पर दोनों चलाकर तुलना करें। हर टोकन स्वीकार हुआ या नहीं, टास्क टाइप और यह कि प्रॉक्सी भेजी गई या नहीं, यह लॉग करें। जो साइट proxyless टोकन लगातार स्वीकार करती है, उसे proxy वैरिएंट की ज़रूरत नहीं। जो साइट कुछ रन से ही टोकन अस्वीकार करती है, वह IP जांच की ओर इशारा करती है। अंदाज़े से नहीं, लॉग से तय करें।
अगले कदम
- Python में PopularCaptcha कैसे हल करें
- अदृश्य कैप्चा हल करना
- उत्पादन में टिकने वाले retries और एरर हैंडलिंग
- मुफ्त कैप्चा सॉल्वर ट्रायल
मुफ्त ट्रायल क्रेडिट के साथ शुरू करें, कार्ड की ज़रूरत नहीं: खाता बनाएं और एक ही पेज पर दोनों टास्क टाइप आज़माएं।