Отправьте решение CAPTCHA с Axios
Решите CAPTCHA с помощью Node.js SDK, затем используйте Axios для запроса целевому сайту. Передайте успешный прокси в HttpsProxyAgent и задайте proxy: false, чтобы Axios не применял конкурирующую конфигурацию прокси. Поля формы, значение CSRF и cookies сессии по-прежнему должно предоставлять ваше приложение.
На этой странице
Установите и настройте 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_KEYAPI-ключ рабочего пространства. Выполняйте этот код на сервере и храните ключ там же. - Задайте для
SOLVETHREE_PROXYURL прокси, используемого и для решения CAPTCHA, и для отправки. - Перед решением CAPTCHA создайте в консоли активный профиль целевого сайта. Передача имени хоста и действия не создаёт профиль. См. настройку профиля сайта.
- Замените имя хоста, действие и URL входа из примера значениями вашего приложения.
site— это имя хоста, а не полный URL; действие должно соответствовать целевой операции.
Решите CAPTCHA и отправьте токен через успешный прокси
client.solve() создаёт задачу и опрашивает её до готовности либо выбрасывает исключение. Затем пример выбирает исходный успешный прокси с помощью successfulProxy(input, result) и использует его для запроса 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-статус доказательством успешного входа.
Источники и справочник API
Запустите первую задачу.
Начните с $5 на балансе рабочего пространства.