Friendly Captcha
Основанный на токенах метод обхода Friendly Captcha.
Полученный токен необходимо установить в качестве значения для элемента input
с именем frc-captcha-solution
и/или передать функции обратного вызова, заданную аттрибутом data-callback
у элемента div
капчи.
Важно: Для успешного использования полученного токена, виджет капчи не должен быть загружен на странице. Для этого вам необходимо прерывать запросы к
/friendlycaptcha/...module.min.js
на странице. Когда виджет капчи уже загружен на странице, большая вероятность что полученный токен не сработает.
Типы задач
- FriendlyCaptchaTaskProxyless - мы используем собственный пул прокси-серверов для решения капч
- FriendlyCaptchaTask - мы используем переданный вами прокси
Спецификация для типа задачи FriendlyCaptchaTaskProxyless
Свойство | Тип | Обязателен | Описание |
---|---|---|---|
type | Строка | Да | Тип задачи: FriendlyCaptchaTaskProxyless FriendlyCaptchaTask |
websiteURL | Строка | Да | Полный URL-адрес целевой веб-страницы, на которую загружается капча. Мы не открываем страницу, это не проблема, если страница доступна только для авторизованных пользователей |
websiteKey | Строка | Да | Значение аттрибута data-apikey элемента div капчи |
Спецификация для типа задачи FriendlyCaptchaTask
Задача FriendlyCaptchaTask
расширяет FriendlyCaptchaTaskProxyless
, добавляя набор параметров, связанных с прокси, перечисленных ниже.
Свойство | Тип | Обязателен | Описание |
---|---|---|---|
proxyType | Строка | Да | Тип прокси: http socks4 socks5 |
proxyAddress | Строка | Да | IP-адрес прокси-сервера или имя хоста |
proxyPort | Число | Да | Порт прокси-сервера |
proxyLogin | Строка | Нет | Логин используемый для аунтефикации на прокси-сервере |
proxyPassword | Строка | Нет | Пароль используемый для аунтефикации на прокси-сервере |
Примеры запросов
Метод: createTask
Эндпоинт API: https://api.rucaptcha.com/createTask
Пример запроса FriendlyCaptchaTaskProxyless
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "FriendlyCaptchaTaskProxyless",
"websiteURL": "https://example.com",
"websiteKey": "2FZFEVS1FZCGQ9"
}
}
Пример запроса FriendlyCaptchaTask
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "FriendlyCaptchaTask",
"websiteURL": "https://example.com",
"websiteKey": "2FZFEVS1FZCGQ9",
"proxyType": "http",
"proxyAddress": "1.2.3.4",
"proxyPort": "8080",
"proxyLogin": "user23",
"proxyPassword": "p4$w0rd"
}
}
Пример ответа
Метод: getTaskResult
Эндпоинт API: https://api.rucaptcha.com/getTaskResult
{
"errorId": 0,
"status": "ready",
"solution": {
"token": "f8b10f4ad796484bae963b1ebe3ce2bb.ZXL8Z...AAAAAA.AgAD" },
"cost": "0.00299",
"ip": "1.2.3.4",
"createTime": 1692863536,
"endTime": 1692863556,
"solveCount": 1
}
Использование токена
Полученный токен поместите в значение тега input
с name = frc-captcha-solution
, затем отправьте форму, внутри которой находится этот input
, например:
document.querySelector('input.frc-captcha-solution').value='f8b10f4ad796484bae963b1ebe3ce2bb.ZXL8Z...AAAAAA.AgAD'
document.querySelector('form').submit()
Имейте в виду, что имя для input
может быть кастомизировано с помощью аттрибута data-solution-field-name
и в этом случае нужно использовать значение этого аттрибута, как имя.
Если на странице задана коллбек-функция, то можно отправить токен через нее. Например, если data-callback="doneCallback"
то вы должны выполнить:
doneCallback('f8b10f4ad796484bae963b1ebe3ce2bb.ZXL8Z...AAAAAA.AgAD')