שליחת פתרון CAPTCHA באמצעות Axios

מאת solvethree2 דקות קריאה

פתרו באמצעות ה-SDK של Node.js, ואז השתמשו ב-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 הרשמי מופץ דרך כתובת ה-URL הזו של ארכיון tarball; אל תחליפו אותה בחבילה משוערת ממאגר npm.

  • הגדירו את SOLVETHREE_API_KEY למפתח ה-API של סביבת העבודה שלכם. הריצו את הקוד הזה בשרת ושמרו שם את המפתח.
  • הגדירו את SOLVETHREE_PROXY לכתובת ה-URL של הפרוקסי שמשמש גם לפתרון וגם לשליחה.
  • צרו בקונסולה פרופיל פעיל לאתר היעד לפני הפתרון. ציון שם מארח ופעולה לא יוצר פרופיל. ראו הגדרת פרופיל אתר.
  • החליפו את שם המארח, הפעולה וכתובת ה-URL לכניסה שבדוגמה בערכים של היישום שלכם. site הוא שם מארח, לא כתובת URL מלאה; הפעולה חייבת להתאים לפעולה ביעד.

פתרו ואז שלחו דרך הפרוקסי שהצליח

client.solve() יוצר את המשימה ובודק את מצבה עד שהיא מוכנה או עד שנזרקת חריגה. לאחר מכן, הדוגמה בוחרת את הפרוקסי המקורי שהצליח באמצעות successfulProxy(input, result) ומשתמשת בו לבקשת Axios.

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 ומשאיר את השליטה בידי הסוכן. ההגדרה הזו חלה על בקשת היעד — לא על החיבור של ה-SDK ל-API של solvethree. הסוכן מושמד כשהבקשה מסתיימת או נכשלת.

השתמשו בערכי userAgent ו-secChUa שהוחזרו יחד עם אותו פרוקסי. אל תחליפו אותם בכותרות דפדפן לא תואמות בעת שליחת הטוקן.

בדקו את תגובת היישום

לקריאת Axios מוגדר זמן קצוב של 30 שניות, והיא אינה עוקבת אחר הפניות. מכיוון ש־validateStatus מקבל כל סטטוס HTTP, בדקו בעצמכם את response.status ואת גוף התגובה; תגובת שגיאת HTTP לא תגרום לזריקת חריגה רק בשל הסטטוס שלה.

משימה מוכנה פירושה שנוצר פתרון, לא שהיעד קיבל אותו. בדקו את תנאי ההצלחה בפועל של האפליקציה, במקום להתייחס לסטטוס ה־HTTP שנרשם ביומן כהוכחה להתחברות מוצלחת.

הפעלת המשימה הראשונה שלך.

התחילו עם $5 בקרדיט לסביבת העבודה.

יצירת סביבת עבודה
שליחת פתרון CAPTCHA באמצעות Axios · solvethree