Логотип «GitHub»

Friendly Captcha

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.2captcha.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.2captcha.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')