Utiliser le proxy qui a réellement résolu la tâche
Lorsque vous envoyez proxyCandidates, utilisez solution.egressAttempts pour identifier le proxy ayant résolu la tâche. Il s’agit d’un indice commençant à un dans la liste initiale des candidats. Utilisez ce proxy lorsque vous soumettez la solution à la cible, et non un autre proxy de la liste.
Sur cette page
Conservez la liste initiale des candidats
Fournissez exactement l’un des deux champs suivants : proxy ou proxyCandidates. Une liste de candidats accepte au maximum douze URL de proxy HTTP ou HTTPS distinctes, sans chemin, paramètres de requête ni fragment. Conservez la requête initiale et l’ordre des candidats jusqu’à la sélection du proxy ayant réussi ; trier ou filtrer la liste après coup modifie l’élément désigné par l’indice.
Les candidats permettent à solvethree d’essayer d’autres points de sortie ; ils ne garantissent pas qu’un proxy ou une cible fonctionnera. Les tâches de session exigent un seul proxy, et non une liste de candidats.
Validez l’indice avant de sélectionner un proxy
Pour reCAPTCHA, Kasada et TMPT, solution.egressAttempts identifie le candidat ayant réussi. Acceptez-le uniquement s’il s’agit d’un entier compris entre 1 et la longueur du tableau initial. Soustrayez un pour accéder à un élément d’un tableau JavaScript ou d’une liste Python.
| Position initiale | Candidat | Sélectionné |
|---|---|---|
| 1 | PROXY_A | Non |
| 2 | PROXY_B | Oui |
| 3 | PROXY_C | Non |
Ici, le proxy ayant réussi est le deuxième, PROXY_B, à l’indice 1 du tableau. Si l’indice est absent, fractionnaire, nul ou hors des limites de la liste, arrêtez-vous. Ne le remplacez pas par le premier proxy et ne déduisez pas le proxy ayant réussi de l’ordre de la liste.
Utilisez la fonction utilitaire du SDK, puis réutilisez le proxy sélectionné
Transmettez la tâche initiale et le résultat prêt à successfulProxy en JavaScript ou à successful_proxy en Python. Les exemples appellent solve pour créer la tâche et interroger son état jusqu’à ce qu’elle soit prête ou qu’une erreur soit levée, puis s’arrêtent si la fonction utilitaire ne renvoie aucun proxy.
Définissez SOLVETHREE_API_KEY et les trois variables d’environnement de proxy sur votre serveur. Chaque variable de proxy doit contenir une URL de proxy valide et distincte. Remplacez le site et l’action de l’exemple par la cible et l’action prévues. Les exemples nécessitent Node.js 22+ ou 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.Conservez le proxy sélectionné avec les valeurs userAgent et secChUa renvoyées et la cible prévue, puis utilisez cette identité pour la requête à la cible. Le SDK sélectionne le proxy ; il ne configure pas votre navigateur et ne soumet pas la solution à votre place. Une solution prête ne prouve pas que la cible l’a acceptée.
Sources et référence de l’API
Lancez votre première tâche.
Démarrez avec $5 de crédit dans votre espace de travail.