Используйте прокси, через который задача действительно была решена
При отправке proxyCandidates используйте solution.egressAttempts, чтобы определить прокси, через который удалось решить задачу. Это индекс в исходном списке кандидатов с отсчетом от единицы. Отправляйте решение целевому сайту через этот прокси, а не через другой прокси из списка.
На этой странице
Сохраните исходный список кандидатов
Укажите ровно одно из полей: 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 на балансе рабочего пространства.