Axios से CAPTCHA समाधान सबमिट करें
Node.js SDK से सॉल्व करें, फिर लक्ष्य अनुरोध के लिए Axios का उपयोग करें। सफल प्रॉक्सी को HttpsProxyAgent में दें और proxy: false सेट करें, ताकि Axios कोई प्रतिस्पर्धी प्रॉक्सी कॉन्फ़िगरेशन लागू न करे। फ़ॉर्म फ़ील्ड, CSRF मान और सेशन कुकीज़ अब भी आपका एप्लिकेशन ही देता है।
इस पेज पर
SDK इंस्टॉल और कॉन्फ़िगर करें
Node.js 22+ का उपयोग करें और npm install axios https-proxy-agent https://solvethree.com/downloads/solvethree-sdk-0.1.0.tgz से डिपेंडेंसी इंस्टॉल करें। आधिकारिक SDK उस tarball URL से वितरित किया जाता है; उसकी जगह किसी अनुमानित npm रजिस्ट्री पैकेज का उपयोग न करें।
SOLVETHREE_API_KEYको अपनी वर्कस्पेस API कुंजी पर सेट करें। यह कोड सर्वर पर चलाएँ और कुंजी वहीं रखें।SOLVETHREE_PROXYको उस प्रॉक्सी URL पर सेट करें जिसका उपयोग सॉल्विंग और सबमिशन, दोनों के लिए होगा।- सॉल्व करने से पहले कंसोल में लक्ष्य साइट की एक सक्रिय प्रोफ़ाइल बनाएँ। होस्टनेम और ऐक्शन देने से प्रोफ़ाइल नहीं बनती। साइट प्रोफ़ाइल सेटअप देखें।
- उदाहरण के होस्टनेम, ऐक्शन और लॉगिन URL को अपने एप्लिकेशन के मानों से बदलें।
siteएक होस्टनेम है, पूरा URL नहीं; ऐक्शन लक्ष्य ऑपरेशन से मेल खाना चाहिए।
सॉल्व करें, फिर सफल प्रॉक्सी से भेजें
client.solve() टास्क बनाता है और उसके तैयार होने या अपवाद फेंकने तक पोलिंग करता है। इसके बाद उदाहरण successfulProxy(input, result) से मूल सफल प्रॉक्सी चुनता है और Axios अनुरोध के लिए उसका उपयोग करता है।
// npm install axios https-proxy-agent and the official solvethree SDK tarball.
import axios from 'axios';
import { HttpsProxyAgent } from 'https-proxy-agent';
import { Solvethree, successfulProxy } from '@solvethree/sdk';
const client = new Solvethree({ apiKey: process.env.SOLVETHREE_API_KEY });
const input = { site: 'accounts.example.com', action: 'login', proxy: process.env.SOLVETHREE_PROXY };
const result = await client.solve(input);
const proxy = successfulProxy(input, result);
if (!proxy) throw new Error('No valid successful proxy');
const agent = new HttpsProxyAgent(proxy);
try {
const response = await axios.post('https://accounts.example.com/login',
new URLSearchParams({ 'g-recaptcha-response': result.solution.token }).toString(), {
httpsAgent: agent, proxy: false, maxRedirects: 0, timeout: 30000,
headers: { 'Content-Type': 'application/x-www-form-urlencoded',
'User-Agent': result.solution.userAgent, 'sec-ch-ua': result.solution.secChUa },
validateStatus: () => true,
});
console.log('Application HTTP status:', response.status);
// Add the application's real form fields, CSRF value and session cookies.
} finally { agent.destroy(); }httpsAgent HTTPS लक्ष्य अनुरोध को चुनी गई प्रॉक्सी से रूट करता है। proxy: false Axios के अलग प्रॉक्सी कॉन्फ़िगरेशन को अक्षम करता है, जिससे नियंत्रण एजेंट के पास रहता है। यह लक्ष्य अनुरोध को कॉन्फ़िगर करता है—solvethree API से SDK के कनेक्शन को नहीं। अनुरोध पूरा होने या विफल होने पर एजेंट नष्ट कर दिया जाता है।
लौटाए गए userAgent और secChUa मानों को उस प्रॉक्सी के साथ रखें। टोकन भेजते समय उन्हें असंबंधित ब्राउज़र हेडर से न बदलें।
एप्लिकेशन रिस्पॉन्स जाँचें
Axios कॉल का टाइमआउट 30 सेकंड है और यह रीडायरेक्ट का अनुसरण नहीं करती। चूँकि validateStatus हर HTTP स्टेटस स्वीकार करता है, इसलिए response.status और रिस्पॉन्स बॉडी की जाँच खुद करें; केवल स्टेटस के कारण HTTP त्रुटि रिस्पॉन्स कोई अपवाद नहीं फेंकेगा।
टास्क तैयार होने का मतलब है कि समाधान जनरेट हुआ है, यह नहीं कि लक्ष्य ने उसे स्वीकार कर लिया है। लॉग किए गए HTTP स्टेटस को सफल लॉगिन का प्रमाण मानने के बजाय एप्लिकेशन की वास्तविक सफलता की शर्त जाँचें।
स्रोत और API संदर्भ
अपना पहला टास्क चलाएँ।
$5 वर्कस्पेस क्रेडिट के साथ शुरुआत करें।