CAPTCHA / TENCENT_ICONS

Tencent / Icons

Капча Tencent «Click in this order»: на картинке цветные иконки, на полоске три чёрных в нужном порядке. Ответ — точки для кликов. Доступно через прямой API.

Входные данные

Подготовьте bg.jpg — картинку 672×480 (dyn_show_info.bg_elem_cfg.img_url в ответе cap_union_prehandle), и sprite.jpg — полоску 170×50 (dyn_show_info.sprite_url). Передавайте файлы одного задания без изменений.

Параметры

ПараметрТипОбязателенПо умолчаниюНазначение
imagestringДа—Исходное изображение в base64.
orderstringДа—Полоска с иконками в base64.

Ответ

Данные распознаванияТипНазначение
confidencenumberНаименьшая из оценок p по точкам.
extra.points[].indexintegerНомер клика, начиная с 1. Порядок совпадает с порядком иконок на полоске.
extra.points[].x / ynumberТочка клика в пикселях исходной картинки.
extra.points[].namestringНазвание иконки.
extra.points[].pnumberОценка найденной иконки, от 0 до 1.
extra.points[].matchnumberСходство иконки с полоски с известной иконкой этого названия.
extra.sizeinteger[2]Ширина и высота исходной картинки.

Применение

Нажмите на точки extra.points по порядку. Если исходная картинка имеет размер W×H, а на странице — w×h, координата относительно картинки на странице: x × w / W, y × h / H.

Частые ошибки

  • Картинка и полоска должны относиться к одному заданию.
  • Не обрезайте и не масштабируйте файлы перед отправкой.
  • Ответ 422 unsolvable_image (4001): решатель не нашёл иконки этого раунда. В detail указаны шаг и то, что он увидел; резерв освобождён. Сохраните отправленные image и order — это пример для обучения модели.
Ошибки сценария и повторы →

Пример запроса

Python · requests
import base64
from pathlib import Path
import os
import uuid
import requests

def image64(filename):
    return base64.b64encode(Path(filename).read_bytes()).decode("ascii")

payload = {
    "image": image64("bg.jpg"),
    "order": image64("sprite.jpg"),
}

# Создайте один ID на задачу; сохраняйте его для сетевых повторов.
request_id = str(uuid.uuid4())
response = requests.post(
    "https://capi.z3n.pro/v1/solve/tencent_icons",
    headers={
        "Authorization": f"Bearer {os.environ['CAPI_API_KEY']}",
        "Content-Type": "application/json",
        "Idempotency-Key": request_id,
    },
    json=payload,
    timeout=90,
)
response.raise_for_status()
result = response.json()
for point in result["extra"]["points"]:
    print(point["index"], point["x"], point["y"])
Оплата и все маршруты →