Usa el proxy que realmente resolvió la tarea
Cuando envíes proxyCandidates, usa solution.egressAttempts para encontrar el proxy que resolvió la tarea. Es un índice basado en uno de la lista original de candidatos. Usa ese proxy cuando envíes la solución al destino, no otro de la lista.
En esta página
Conserva la lista original de candidatos
Proporciona exactamente uno de estos campos: proxy o proxyCandidates. Una lista de candidatos admite como máximo doce URL de proxy HTTP o HTTPS distintas, sin ruta, consulta ni fragmento. Conserva la solicitud original y el orden de los candidatos hasta haber seleccionado el proxy que funcionó; ordenar o filtrar la lista después cambia el elemento al que apunta el índice.
Los candidatos permiten a solvethree probar vías de salida alternativas; no garantizan que un proxy o un destino funcione. Las tareas de sesión requieren un único proxy, no una lista de candidatos.
Valida el índice antes de seleccionar un proxy
Para reCAPTCHA, Kasada y TMPT, solution.egressAttempts identifica el candidato que funcionó. Acéptalo solo si es un entero entre 1 y la longitud del array original. Resta uno al usarlo como índice en un array de JavaScript o una lista de Python.
| Posición original | Candidato | Seleccionado |
|---|---|---|
| 1 | PROXY_A | No |
| 2 | PROXY_B | Sí |
| 3 | PROXY_C | No |
Aquí, el que funcionó es el segundo proxy, PROXY_B, en la posición 1 del array. Si el índice falta, es fraccionario, es cero o queda fuera de la lista, detente. No lo sustituyas por el primer proxy ni deduzcas cuál funcionó a partir del orden de la lista.
Usa la función auxiliar del SDK y reutiliza el proxy seleccionado
Pasa la tarea original y el resultado listo a successfulProxy de JavaScript o a successful_proxy de Python. Los ejemplos llaman a solve para crear la tarea y consultar su estado hasta que esté lista o se lance un error; después, se detienen si la función auxiliar no devuelve un proxy.
Configura SOLVETHREE_API_KEY y las tres variables de entorno de proxy en tu servidor. Cada variable de proxy debe contener una URL de proxy válida y distinta. Sustituye el sitio y la acción del ejemplo por el destino y la acción previstos. Los ejemplos requieren Node.js 22+ o 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.Conserva el proxy seleccionado junto con los valores devueltos de userAgent y secChUa y el destino previsto, y usa esa identidad para la solicitud al destino. El SDK selecciona el proxy; no configura tu navegador ni envía la solución por ti. Una solución lista no demuestra que el destino la haya aceptado.
Fuentes y referencia de la API
Ejecuta tu primera tarea.
Empieza con $5 de crédito en tu espacio de trabajo.