Перейти к содержимому
СтатусПанель

Типы задач

Распознавание изображений hCaptcha

Эта страница переведена с китайской версии машинным переводом и может содержать ошибки. Приоритет имеет китайская версия.

ИллюстрацияСетка изображений: 9 изображений под вопросом, иногда с примером изображения (anchors) в правом верхнем углу; API возвращает номера изображений для клика.

HCaptchaClassification распознаёт графические задания hCaptcha: вы отправляете вопрос и изображения, а в ответ получаете, какие картинки выбрать, куда кликнуть или откуда и куда перетащить. Действие в браузере выполняет ваша программа. Токен не возвращается. Ответ синхронный, каждый запрос стоит 8 pts (≈ $1.20 / 1k); если цель не найдена (пустой результат), баллы не списываются.

POSThttps://api.yescaptcha.com/createTaskГлобальный endpoint
POSThttps://cn.yescaptcha.com/createTaskEndpoint для Китая
Тип задачиЦенаРежимПримечания
HCaptchaClassification$1.20 / 1k; 8 pts/задача · ¥8 / 1kСинхронныйБаллы не списываются, если цель не найдена

Цены в долларах США являются оценочными и рассчитаны по курсу 1 USD ≈ ¥6.67; списание за задачи производится в баллах.

ПолеТипОбязательноеОписание
typestringДаТип задачи; см. «Типы задач и цены» на этой странице
queriesarrayДаСписок изображений капчи в кодировке Base64 в порядке их расположения на странице (9 фрагментов для сетки 3×3)
questionstringНетПолный текст вопроса так, как он показан на странице (рекомендуются упрощённый китайский или английский), например Please click each image containing a bicycle. Передайте хотя бы одно из полей question и anchors; рекомендуется передавать оба
anchorsarrayНетСписок примеров изображений в кодировке Base64, показанных рядом с вопросом; обязателен для вопросов, в которых они есть
  • В question передавайте вопрос целиком в том виде, как он показан на странице; переводить его не нужно, но рекомендуется переключить hCaptcha на английский или упрощённый китайский. Новые формулировки обычно поддерживаются быстро, совершенно новые категории — в течение 3 рабочих дней.

Вопрос выглядит как «Please click each image containing …», ниже расположены 9 маленьких изображений. В queries передайте 9 изображений в Base64 по порядку:

POST https://api.yescaptcha.com/createTask
{
"clientKey": "YOUR_CLIENT_KEY",
"task": {
"type": "HCaptchaClassification",
"question": "Please click each image containing a bicycle",
"queries": ["BASE64_IMAGE_1", "BASE64_IMAGE_2"]
}
}

Ответ:

{
"errorId": 0,
"status": "ready",
"solution": {
"objects": [true, false, false, true, true, false, true, true, false],
"top_k": [0, 3, 4, 6, 7],
"confidences": [1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0]
}
}

objects и top_k содержат одну и ту же информацию: objects показывает для каждого изображения, является ли оно целью, а top_k — номера изображений-целей (с 0). Кликните по этим изображениям.

Вопрос выглядит как «Please click on …», ниже одно большое изображение, на котором нужно кликнуть в одной или нескольких позициях.

  1. В question передайте вопрос со страницы; если есть примеры изображений, передайте их в anchors.
  2. В queries передайте одно изображение: лучше всего исходное изображение, экспортированное напрямую из canvas (рекомендуется преобразовать в JPG). Если возможен только скриншот, захватите область большого изображения (внутри красной рамки на рисунке ниже) — без лишнего и без недостающего.
  3. box в ответе — координаты для клика: x1, y1, x2, y2 и так далее, начало координат — левый верхний угол загруженного изображения.
  4. Если размер загруженного изображения отличается от размера на странице, пересчитайте координаты: x на странице = возвращённый x × отображаемая ширина ÷ ширина загруженного изображения (для y аналогично). Например, если вернулся x = 769, ширина canvas на странице 350, а ширина загруженного изображения 1000, то на странице нужно кликнуть в 769 × 350 ÷ 1000 ≈ 269.

Область скриншота для задания с кликом: текст вопроса — question, три маленьких примера изображений — anchors, большое изображение ниже — queries

POST https://api.yescaptcha.com/createTask
{
"clientKey": "YOUR_CLIENT_KEY",
"task": {
"type": "HCaptchaClassification",
"question": "Please click on the entity present in the sample image.",
"anchors": ["BASE64_ANCHOR_1", "BASE64_ANCHOR_2", "BASE64_ANCHOR_3"],
"queries": ["BASE64_OF_THE_BIG_IMAGE"]
}
}

Ответ:

{
"errorId": 0,
"status": "ready",
"solution": {
"box": ["221", "213"]
}
}

Если нужно кликнуть по нескольким целям, в box по порядку идут несколько пар координат: ["221", "213", "340", "118", ...].

Вопрос выглядит как «Drag … to …»: нужно перетащить фрагменты справа на соответствующие места на изображении.

  1. В question передайте вопрос со страницы.
  2. Сделайте скриншот и передайте его в queries. На изображении должны быть одновременно и перетаскиваемые фрагменты, и целевые места; каждая сторона изображения — не менее 260 пикселей.
  3. Каждый элемент box в ответе — одно перетаскивание: start — позиция фрагмента, end — место, куда его нужно перетащить. Если фрагментов несколько, перетаскивайте их по одному.
{
"errorId": 0,
"status": "ready",
"solution": {
"type": "drag",
"box": [
{
"start": [644, 218],
"end": [239, 315]
}
]
}
}

Пример результата для задания с перетаскиванием: Start — перетаскиваемый фрагмент, End — целевая позиция

Если вместо скриншота у вас протокольные данные (изображения фрагментов, их координаты и большое фоновое изображение), сначала по координатам наложите фрагменты на фон, чтобы получилось изображение, как на скриншоте страницы, и только потом отправляйте его.

Если изображение задания анимированное, передайте в queries анимацию (GIF и т. п.) в Base64. Рекомендуемая длительность анимации — не менее 3 секунд, лучше 5–6 секунд, частота кадров около 12 FPS.

Если после клика проверка не пройдена, сообщите о неверном результате через report в течение 1 часа; возврат баллов после жалобы рассчитывается примерно через 24 часа. Правила — в разделе Тарификация и возврат баллов.