К содержимому

Документация

TypeScript SDK: Browser: открытие страницы

Браузер нужен для страниц с динамическим содержимым и действиями. Открытие асинхронно; закрывайте страницу после работы.

Примеры — отдельные фрагменты тела async function run(ctx: Akmelo.Context): Promise<void>. Используйте await только для методов с Promise в сигнатуре.

Методы

open

ctx.browser().open(url, capture, captchaHints, autoCaptcha = true) → Promise<BrowserPage>

Открыть страницу в управляемом браузере.

const result = await ctx.browser().open(ctx.param('catalog_url', 'https://example.com'));

Автоматическое прохождение CAPTCHA

Параметр autoCaptcha необязательный, по умолчанию true. Передайте false, чтобы отключить автоматическое прохождение. При false платные задания автоматически не запускаются. Общие настройки, поддерживаемые типы проверок и квоты продолжают действовать. Выбор действует на всю браузерную сессию, включая следующие действия и чтение содержимого.

const page = await ctx.browser().open(url, [], {}, false);

CAPTCHA на своём агенте

Автоматический режим и отключение работают на агенте. Нужны браузер, связь с Akmelo и тариф с доступными агентами. Дополнительные ключи CAPTCHA настраивать не требуется. Проверки и стоимость относятся к пространству агента; локальное выполнение не делает их бесплатными.

Учебная форма Яндекс SmartCaptcha

На официальном демо можно проверить всю форму без регистрации. CAPTCHA обрабатывается автоматически; сценарий заполняет учебное имя и отправляет форму. Используйте тестовые значения.

const page = await ctx.browser().open('https://smartcaptcha.yandexcloud.net/demo', [], { success_selector: '.greeting' });
try {
  await page.type('#name', 'Training example');
  await page.click('#smartcaptcha-demo-submit');
  await page.waitFor('.greeting', 15000);
  ctx.log(ctx.dom(await page.content()).text('.greeting') ?? '');
} finally { await page.close(); }

Заполненный smart-token означает готовность к отправке. Успех подтверждает только серверное приветствие с отправленным именем. Название CAPTCHA и новый пустой виджет рядом с приветствием не вызывают повторную оплату при чтении результата. Дополнительное визуальное задание обрабатывается в той же сессии до предела попыток; отмена и срок прогона останавливают цепочку. Неподдерживаемое задание или непринятый ответ остаётся ошибкой. На подключённом агенте работают те же методы SDK и hints.

Полный справочник CAPTCHA

SDK и REST API для CAPTCHA описывает все hints, значения по умолчанию, явный вызов, отключение, проверку результата, агенты, пределы и ошибки. Руководство пользователя и актуальные цены помогут настроить функцию и оплату.

Для выбора объектов используется kind: "yandex_image"; обычно тип определяется автоматически. image_selector указывает только картинку задания, instructions_selector порядок выбора, success_selector новый результат успешной операции. Список доменов целевых сайтов не нужен. Неизвестный вариант завершается ошибкой. Не запускайте бесконечные повторы при отказе.

Выбор объектов с явными селекторами

Замените примерные селекторы элементами своего источника. Оба селектора изображения должны указывать только картинки задания, а не всю страницу. Этот вариант нужен, если автоматического определения недостаточно.

const page = await ctx.browser().open(url, [], {
  kind: 'yandex_image',
  image_selector: '.challenge-image',
  instructions_selector: '.challenge-order',
  submit_selector: '.challenge-submit',
  success_selector: '.result',
});
try {
  await page.waitFor('.result', 15000);
} finally { await page.close(); }