Перейти к основному содержимому
Возникают проблемы с получением токена?
Свяжитесь с поддержкой

AmazonTask | AWS WAF Captcha and Challenge

Решение капчи и челленджа в AWS WAF

Ещё больше по теме в нашем блоге
Внимание!

Данная задача будет выполняться с использованием наших прокси-серверов.

Примеры заданий

Параметры запроса

Вариант 1

type<string>required

AmazonTaskProxyless


websiteURL<string>required

Адрес основной страницы, на которой решается капча.


websiteKey<string>required

Можно найти в поле apiKey при рендеринге капчи


captchaScript<string>required

Ссылка на jsapi.js на html странице, имеет вид <Integration URL>/jsapi.js


cookieSolution<boolean>optional

По умолчанию false. Если вам требуются куки "aws-waf-token", то укажите значение true. Иначе в ответ вы получите "captcha_voucher" и "existing_token".

Вариант 2

type<string>required

AmazonTaskProxyless


websiteURL<string>required

Адрес основной страницы, на которой решается капча.


challengeScript<string>required

Ссылка на challenge.js (см. описание ниже)


captchaScript<string>optional

Ссылка на captcha.js (может отсутствовать, если у вас просто челлендж)


websiteKey<string>required

Строка, которую можно получить из html страницы с капчей или с помощью javascript, выполнив window.gokuProps.key


context<string>required

Строка, которую можно получить из html страницы с капчей или с помощью javascript, выполнив window.gokuProps.context


iv<string>required

Строка, которую можно получить из html страницы с капчей или с помощью javascript, выполнив window.gokuProps.iv


cookieSolution<boolean>optional

По умолчанию false. Если вам требуются куки "aws-waf-token", то укажите значение true. Иначе в ответ вы получите "captcha_voucher" и "existing_token".

Как получить параметры websiteKey, context, iv и challengeScript

При переходе на сайт вы получаете ответ 405 и html страницу с капчей. Именно из неё можно достать все параметры:

Методы создания задачи

Вариант 1

POST
https://api.capmonster.cloud/createTask

Запрос

{
"clientKey": "",
"task": {
"type": "AmazonTaskProxyless",
"websiteURL": "https://example.com/index.html",
"websiteKey": "h15hX7brbaRTR...Za1_1",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36",
"captchaScript": "https://234324vgvc23.yejk.captcha-sdk.awswaf.com/234324vgvc23/jsapi.js",
"cookieSolution": true
}
}

Ответ

{
"errorId":0,
"taskId":407533072
}

Вариант 2

POST
https://api.capmonster.cloud/createTask

Запрос

{
"clientKey": "API_KEY",
"task": {
"type": "AmazonTaskProxyless",
"websiteURL": "https://example.com",
"challengeScript": "https://41bcdd4fb3cb.610cd090.us-east-1.token.awswaf.com/41bcdd4fb3cb/0d21de737ccb/cd77baa6c832/challenge.js",
"captchaScript": "https://41bcdd4fb3cb.610cd090.us-east-1.captcha.awswaf.com/41bcdd4fb3cb/0d21de737ccb/cd77baa6c832/captcha.js",
"websiteKey": "AQIDA...wZwdADFLWk7XOA==",
"context": "qoJYgnKsc...aormh/dYYK+Y=",
"iv": "CgAAXFFFFSAAABVk",
"cookieSolution": true
}
}

Ответ

{
"errorId":0,
"taskId":407533072
}

Метод получения результата задачи

Используйте метод getTaskResult, чтобы получить решение AmazonTask.

POST
https://api.capmonster.cloud/getTaskResult

Запрос

{
"clientKey":"API_KEY",
"taskId": 407533072
}

Ответ

{
"errorId":0,
"status":"ready",
"solution": {
"cookies": {
"aws-waf-token": "10115f5b-ebd8-45c7-851e-cfd4f6a82e3e:EAoAua1QezAhAAAA:dp7sp2rXIRcnJcmpWOC1vIu+yq/A3EbR6b6K7c67P49usNF1f1bt/Af5pNcZ7TKZlW+jIZ7QfNs8zjjqiu8C9XQq50Pmv2DxUlyFtfPZkGwk0d27Ocznk18/IOOa49Rydx+/XkGA7xoGLNaUelzNX34PlyXjoOtL0rzYBxMAQy0D1tn+Q5u97kJBjs5Mytqu9tXPIPCTSn4dfXv5llSkv9pxBEnnhwz6HEdmdJMdfur+YRW1MgCX7i3L2Y0/CNL8kd8CEhTMzwyoXekrzBM="
},
"userAgent": "userAgentPlaceholder"
}
}

Используйте библиотеку SDK

// https://github.com/ZennoLab/capmonstercloud-client-js

import { CapMonsterCloudClientFactory, ClientOptions, AmazonProxylessRequest } from '@zennolab_com/capmonstercloud-client';

document.addEventListener('DOMContentLoaded', async () => {
const cmcClient = CapMonsterCloudClientFactory.Create(new ClientOptions({ clientKey: '<your capmonster.cloud API key>' }));
console.log(await cmcClient.getBalance());

const amazonRequest = new AmazonProxylessRequest({
websiteURL: 'https://example.com',
websiteKey: 'websiteKey',
challengeScript: 'https://41bcdd4fb3cb.610cd090.us-east-1.token.awswaf.com/41bcdd4fb3cb/0d21de737ccb/cd77baa6c832/challenge.js',
captchaScript: 'https://41bcdd4fb3cb.610cd090.us-east-1.captcha.awswaf.com/41bcdd4fb3cb/0d21de737ccb/cd77baa6c832/captcha.js',
context: 'qoJYgnKsc...aormh/dYYK+Y=',
iv: 'CgAAXFFFFSAAABVk',
});

console.log(await cmcClient.Solve(amazonRequest));
});