Yidun - NECaptcha
Примеры заданий
Ниже представлены примеры типов заданий Yidun, которые на данный момент поддерживаются сервисом CapMonster Cloud:






CapMonster Cloud по умолчанию работает через встроенные прокси — они уже включены в стоимость. Указывать собственные прокси требуется только в тех случаях, когда сайт не принимает токен или доступ к встроенным сервисам ограничен.
Если прокси с авторизацией по IP, то необходимо добавить адрес 65.21.190.34 в белый список.
Параметры запроса
ВАЖНО: значения некоторых параметров являются динамическими — они меняются при каждом рендеринге страницы с Yidun.
Извлекайте их непосредственно перед созданием задачи, чтобы избежать ошибок при решении. Примеры извлечения параметров см. в разделе Как найти все нужные параметры для создания задачи.
type<string>requiredYidunTask
websiteURL<string>requiredПолный URL страницы с капчей.
websiteKey<string>requiredЗначение параметра siteKey, найденное на странице (см. пример ниже, как его найти).
userAgent<string>optionalUser-Agent браузера. Используйте текущее значение, поддерживаемое CapMonster Cloud: userAgentPlaceholder
Получить актуальное значение можно по адресу: https://capmonster.cloud/api/useragent/actual.
yidunGetLib<string>optionalПуть к JavaScript-файлу, загружающему капчу на странице.
Важно: указывайте полную ссылку (https://...).
Рекомендуется использовать, если на сайте присутствуют поля challenge, hcg, hct.
yidunApiServerSubdomain<string>optionalПоддомен Yidun API сервера.
Важно: должен отличаться от стандартных c.dun.163.com и c-v6.dun.163.com.
Указывайте только домен без префикса https://
Обязателен, если используется кастомный сервер (часто бывает в Enterprise-версиях).
challenge<string>optionalУникальный идентификатор текущей капчи.
Обычно передаётся в сетевых запросах при инициализации или отображении капчи.
Признак Enterprise-капчи.
hcg<string>optionalХеш капчи, используется при формировании запроса.
Можно получить вместе с challenge.
hct<integer>optionalЧисловой временной идентификатор/штамп, используемый при валидации Enterprise-версии.
proxyType<string>optionalhttp - обычный http/https прокси;
https - попробуйте эту опцию, только если "http" не работает (требуется для некоторых кастомных прокси);
socks4 - socks4 прокси;
socks5 - socks5 прокси.
proxyAddress<string>optionalIP адрес прокси IPv4/IPv6. Не допускается:
- использование прозрачных прокси (там где можно видеть IP клиента);
- использование прокси на локальных машинах.
proxyPort<integer>optionalПорт прокси.
proxyLogin<string>optionalЛогин прокси-сервера.
proxyPassword<string>optionalПароль прокси-сервера.
Метод создания задачи
https://api.capmonster.cloud/createTask
Для пользователей из России также доступен:
https://ru.api.capmonster.cloud/createTask
Подробнее в разделе createTask.
- YidunTask (без прокси)
- YidunTask (с прокси)
Пример запроса
{
"clientKey": "API_KEY",
"task": {
"type": "YidunTask",
"websiteURL": "https://yourwebsite.com/page-with-yidun",
"websiteKey": "your-website-key",
"userAgent": "userAgentPlaceholder"
}
}
Пример ответа
{
"errorId": 0,
"taskId": 407533077
}
Пример запроса
{
"clientKey": "API_KEY",
"task": {
"type": "YidunTask",
"websiteURL": "https://yourwebsite.com/page-with-yidun",
"websiteKey": "your-website-key",
"userAgent": "userAgentPlaceholder",
"proxyType": "your-proxy-type",
"proxyAddress": "your-proxy-address",
"proxyPort": 1234,
"proxyLogin": "your-proxy-login",
"proxyPassword": "your-proxy-password"
}
}
Пример ответа
{
"errorId": 0,
"taskId": 407533077
}
Метод получения результата задачи
Используйте метод getTaskResult, чтобы получить решение Yidun капчи.
https://api.capmonster.cloud/getTaskResult
Для пользователей из России также доступен:
https://ru.api.capmonster.cloud/getTaskResult
Подробнее в разделе getTaskResult.
Пример запроса
{
"clientKey": "API_KEY",
"taskId": 407533077
}
Пример ответа
{
"errorId": 0,
"errorCode": null,
"errorDescription": null,
"solution": {
"token": "CN31_9AwsPmaYcJameP_09rA0vkVMQsPij...RXTlFJFc3"
},
"status": "ready"
}
Когда нужны yidunGetLib и yidunApiServerSubdomain?
Если на странице в сетевых запросах (Network) вы находите параметры challenge, hcg, hct - значит, используется Enterprise (или Business) версия Yidun, и следует дополнительно передать yidunGetLib и yidunApiServerSubdomain для корректного решения.
Пример задачи
Важно: указанные значения параметров приведены исключительно в качестве примера. Перед использованием замените их на актуальные данные для вашего проекта.
{
"type": "YidunTask",
"websiteURL": "https://id7.cloud.example.com/IframeLogin.html",
"websiteKey": "0f123r2a6am56431yg17n8rz6grz0ym6",
"userAgent": "userAgentPlaceholder",
"yidunGetLib": "https://example.com/captcha/b/v3//static/load.min.js",
"yidunApiServerSubdomain": "csc-captcha-example.com",
"challenge": "abc55382321547556267884cc3ba57c3d8a7c14f541fd9c6a7f1ce3173d3b9a1",
"hcg": "9a217825f3dcfac3d34e551e93819d610dec931e5e2a2236edf0e1f3f320c191",
"hct": 1751469954806
}
Как найти все нужные параметры для создания задачи
websiteURL и websiteKey
Откройте Инструменты разработчика, активируйте капчу, перейдите во вкладку Network и среди запросов найдите тот, который начинается на get?referer= или check?referer=. Значение referer - это websiteURL.

Иногда в URL referer закодирован, например: https%3A%2F%2Fid.example.com%2F. Чтобы получить читаемый адрес, его нужно декодировать, например, с помощью консоли в браузере:
Значение id - это websiteKey.

Для Yidun Enterprise:
websiteURL, websiteKey и yidunApiServerSubdomain можно найти аналогично обычной Yidun капче в запросах, начинающихся на get?referer= или check?referer=

yidunGetLib
Путь к JavaScript-файлу, который отвечает за загрузку капчи на странице, обычно можно найти в сетевых запросах. Чаще всего он имеет имя вроде load.min.js.

challenge, hcg, hct
Все эти параметры можно найти в сетевых запросах. Обычно соответствующий запрос начинается с cscPreprocess?reflushCode=.

Используйте библиотеку SDK
- JavaScript / TypeScript
- Python
- C#
Показать код (для браузера)
// https://github.com/CapMonsterCloud/capmonster-nodejs-captcha-solver
import {
CapMonsterCloudClientFactory,
ClientOptions,
YidunRequest
} from "@zennolab_com/capmonstercloud-client";
document.addEventListener("DOMContentLoaded", async () => {
const API_KEY = "YOUR_API_KEY"; // Укажите ваш API-ключ CapMonster Cloud
const client = CapMonsterCloudClientFactory.Create(
new ClientOptions({ clientKey: API_KEY })
);
// Базовый пример без прокси
// CapMonster Cloud автоматически использует собственные прокси
let yidunRequest = new YidunRequest({
websiteURL: "https://yourwebsite.com/page-with-yidun",
websiteKey: "your-website-key",
userAgent: "userAgentPlaceholder",
});
// Пример использования с вашим прокси
// Раскомментируйте этот блок, если хотите использовать свой прокси
/*
const proxy = {
proxyType: "http",
proxyAddress: "123.45.67.89",
proxyPort: 8080,
proxyLogin: "username",
proxyPassword: "password",
};
yidunRequest = new YidunRequest({
websiteURL: "https://yourwebsite.com/page-with-yidun",
websiteKey: "your-website-key",
userAgent: "userAgentPlaceholder",
proxy,
});
*/
// При необходимости можно проверить баланс
const balance = await client.getBalance();
console.log("Balance:", balance);
const result = await client.Solve(yidunRequest);
console.log("Solution:", result.solution);
});
Показать код (Node.js)
// https://github.com/CapMonsterCloud/capmonster-nodejs-captcha-solver
const {
CapMonsterCloudClientFactory,
ClientOptions,
YidunRequest,
} = require("@zennolab_com/capmonstercloud-client");
const API_KEY = "YOUR_API_KEY"; // Укажите ваш API-ключ CapMonster Cloud
async function solveYidun() {
const client = CapMonsterCloudClientFactory.Create(
new ClientOptions({ clientKey: API_KEY }),
);
// Базовый пример без прокси
// CapMonster Cloud автоматически использует собственные прокси
let yidunRequest = new YidunRequest({
websiteURL: "https://yourwebsite.com/page-with-yidun",
websiteKey: "your-website-key",
userAgent: "userAgentPlaceholder",
});
// Пример с использованием вашего прокси
// Раскомментируйте этот блок, если хотите использовать свой прокси
/*
const proxy = {
proxyType: "http",
proxyAddress: "123.45.67.89",
proxyPort: 8080,
proxyLogin: "username",
proxyPassword: "password",
};
yidunRequest = new YidunRequest({
websiteURL: "https://yourwebsite.com/page-with-yidun",
websiteKey: "your-website-key",
userAgent: "userAgentPlaceholder",
proxy,
});
*/
// При необходимости можно проверить баланс
const balance = await client.getBalance();
console.log("Balance:", balance);
const result = await client.Solve(yidunRequest);
console.log("Solution:", result.solution);
}
solveYidun().catch(console.error);
Показать код
# https://github.com/CapMonsterCloud/capmonster-python-captcha-solver
import asyncio
from capmonstercloudclient import CapMonsterClient, ClientOptions
from capmonstercloudclient.requests import YidunRequest
# Импортируйте ProxyInfo, если планируете использовать собственный прокси
from capmonstercloudclient.requests.proxy_info import ProxyInfo
API_KEY = "YOUR_API_KEY" # Укажите ваш API-ключ CapMonster Cloud
async def solve_yidun():
client = CapMonsterClient(
options=ClientOptions(api_key=API_KEY)
)
# Базовый пример без прокси
# CapMonster Cloud автоматически использует собственные прокси
yidun_request = YidunRequest(
websiteUrl="https://yourwebsite.com/page-with-yidun",
websiteKey="your-website-key",
userAgent="userAgentPlaceholder",
)
# Пример с использованием вашего прокси
# Раскомментируйте этот блок, если хотите использовать свой прокси
"""
proxy = ProxyInfo(
proxyType="http",
proxyAddress="123.45.67.89",
proxyPort=8080,
proxyLogin="username",
proxyPassword="password",
)
yidun_request = YidunRequest(
websiteUrl="https://yourwebsite.com/page-with-yidun",
websiteKey="your-website-key",
userAgent="userAgentPlaceholder",
proxy=proxy,
)
"""
# При необходимости можно проверить баланс
balance = await client.get_balance()
print("Balance:", balance)
result = await client.solve_captcha(yidun_request)
print("Solution:", result)
asyncio.run(solve_yidun())
Показать код
// https://github.com/CapMonsterCloud/capmonster-dotnet-captcha-solver
using System;
using System.Threading.Tasks;
using Zennolab.CapMonsterCloud;
using Zennolab.CapMonsterCloud.Requests;
class Program
{
static async Task Main(string[] args)
{
// Укажите ваш API-ключ CapMonster Cloud
var clientOptions = new ClientOptions
{
ClientKey = "YOUR_API_KEY"
};
var cmCloudClient = CapMonsterCloudClientFactory.Create(clientOptions);
// Базовый пример без прокси
// CapMonster Cloud автоматически использует собственные прокси
var yidunRequest = new YidunTaskRequest
{
WebsiteUrl = "https://yourwebsite.com/page-with-yidun",
WebsiteKey = "your-website-key",
UserAgent = "userAgentPlaceholder"
};
// Пример с использованием вашего прокси
// Раскомментируйте этот блок, если хотите использовать свой прокси
/*
yidunRequest = new YidunTaskRequest
{
WebsiteUrl = "https://yourwebsite.com/page-with-yidun",
WebsiteKey = "your-website-key",
UserAgent = "userAgentPlaceholder",
Proxy = new ProxyContainer(
"123.45.67.89",
8080,
ProxyType.Http,
"username",
"password"
)
};
*/
// При необходимости можно проверить баланс
var balance = await cmCloudClient.GetBalanceAsync();
Console.WriteLine("Balance: " + balance);
var yidunResult = await cmCloudClient.SolveAsync(yidunRequest);
Console.WriteLine("Solution: " + yidunResult.Solution.Value);
}
}
