استخدم الوكيل الذي حل المهمة فعليًا
عند إرسال proxyCandidates، استخدم solution.egressAttempts لمعرفة الوكيل الذي حل المهمة. إنه فهرس يبدأ من 1 في قائمة المرشحين الأصلية. استخدم ذلك الوكيل عند إرسال الحل إلى الموقع المستهدف، وليس وكيلاً آخر من القائمة.
في هذه الصفحة
احتفظ بقائمة المرشحين الأصلية
قدّم واحدًا فقط من proxy أو proxyCandidates. تقبل قائمة المرشحين ما يصل إلى اثني عشر عنوان URL مميزًا لوكلاء HTTP أو HTTPS، دون مسار أو استعلام أو جزء محدد. احتفظ بالطلب الأصلي وترتيب المرشحين حتى تحدد الوكيل الناجح؛ ففرز القائمة أو تصفيتها لاحقًا يغيّر العنصر الذي يشير إليه الفهرس.
تتيح قائمة المرشحين لـ solvethree تجربة مسارات خروج بديلة؛ لكنها لا تضمن عمل الوكيل أو الوجهة. تتطلب مهام الجلسات وكيلاً واحدًا في proxy، وليس قائمة مرشحين.
تحقق من صحة الفهرس قبل تحديد الوكيل
بالنسبة إلى reCAPTCHA وKasada وTMPT، يحدد solution.egressAttempts المرشح الناجح. لا تقبله إلا إذا كان عددًا صحيحًا من 1 إلى طول المصفوفة الأصلية. اطرح واحدًا عند استخدامه للفهرسة في مصفوفة JavaScript أو قائمة Python.
| الموضع الأصلي | المرشح | محدد |
|---|---|---|
| 1 | PROXY_A | لا |
| 2 | PROXY_B | نعم |
| 3 | PROXY_C | لا |
هنا، الوكيل الناجح هو الثاني، PROXY_B، عند إزاحة المصفوفة 1. إذا كان الفهرس مفقودًا أو كسريًا أو صفرًا أو خارج حدود القائمة، فتوقف. لا تستخدم الوكيل الأول بدلاً منه، ولا تستنتج الوكيل الناجح من ترتيب القائمة.
استخدم الدالة المساعدة في SDK، ثم أعد استخدام الوكيل المحدد
مرر المهمة الأصلية والنتيجة الجاهزة إلى successfulProxy في JavaScript أو successful_proxy في Python. تستدعي الأمثلة solve لإنشاء المهمة والاستطلاع حتى تصبح جاهزة أو يُطرح خطأ، ثم تتوقف إذا لم تُعد الدالة المساعدة وكيلاً.
اضبط SOLVETHREE_API_KEY ومتغيرات البيئة الثلاثة الخاصة بالوكلاء على خادمك. يجب أن يحتوي كل متغير وكيل على عنوان URL صالح ومميز لوكيل. استبدل موقع المثال والإجراء بالوجهة والإجراء المقصودين. تتطلب الأمثلة Node.js 22+ أو Python 3.10+.
import { Solvethree, successfulProxy } from '@solvethree/sdk';
const client = new Solvethree({ apiKey: process.env.SOLVETHREE_API_KEY });
const request = {
site: 'accounts.example.com', action: 'login',
proxyCandidates: [process.env.PROXY_A, process.env.PROXY_B, process.env.PROXY_C],
};
const result = await client.solve(request);
const proxy = successfulProxy(request, result);
if (!proxy) throw new Error('No valid winning proxy index; do not guess');
// For egressAttempts: 2, proxy is request.proxyCandidates[1].
// Submit result.solution through this proxy with its returned browser identity.import os
from solvethree import Solvethree, successful_proxy
client = Solvethree(os.environ["SOLVETHREE_API_KEY"])
request = {
"site": "accounts.example.com", "action": "login",
"proxyCandidates": [os.environ["PROXY_A"], os.environ["PROXY_B"], os.environ["PROXY_C"]],
}
result = client.solve(request)
proxy = successful_proxy(request, result)
if proxy is None:
raise RuntimeError("No valid winning proxy index; do not guess")
# With egressAttempts == 2, proxy is request["proxyCandidates"][1].
# Use this proxy and the returned identity for the target request.احتفظ بالوكيل المحدد مع قيمتَي userAgent وsecChUa المُعادتين والوجهة المقصودة، واستخدم تلك الهوية لطلب الوجهة. تحدد SDK الوكيل؛ لكنها لا تضبط متصفحك ولا ترسل الحل نيابةً عنك. لا تُعد النتيجة الجاهزة دليلاً على قبول الموقع المستهدف لها.
المصادر ومرجع API
شغّل مهمتك الأولى.
ابدأ برصيد قدره $5 في مساحة العمل.