JavaScript SDK: с чего начать
При ручном создании сценария выберите JavaScript. Код выполняется в отдельной изолированной среде Node.js. Для доступа к сайту, браузеру, данным, документам и AI используйте ctx. Прямые сетевые запросы, файловая система, require и системные команды недоступны.
Один сценарий может запросить несколько сайтов и обработать входящее письмо. Выбранный сайт определяет, где сохранятся результаты. Как объединить источники.
Точка входа называется run. Методы, которые получают данные от платформы, возвращают Promise, поэтому используйте await.
async function run(ctx) {
const url = ctx.param('catalog_url', '');
if (!url) ctx.abort('Укажите адрес каталога');
const response = await ctx.http().get(url);
if (!response.ok()) ctx.abort(`Сайт ответил HTTP ${response.status}`);
const cards = response.dom().qa('.product-card');
for (const card of cards) {
const sku = card.attr('data-sku');
if (!sku) continue;
ctx.emit({
sku,
name: card.q('.title')?.text() ?? '',
price: ctx.text().money(card.q('.price')?.text() ?? null),
}, sku);
}
}
Селекторы в примере условные. Подберите их для своего сайта через визуальный маппер. ctx.emit(запись, ключ) сохраняет запись; стабильный ключ помогает обновлять товар при следующем сборе.
Действия на странице
Если сайт требует нажатия или ввода, откройте страницу через браузерный SDK. Действия выполняются по порядку. На агенте должен быть включён браузер.
async function run(ctx) {
const page = await ctx.browser().open(ctx.param('catalog_url'));
try {
await page.click('button.show-products');
await page.type('input[name="search"]', 'кабель');
await page.press('input[name="search"]', 'Enter');
await page.waitFor('.product-card');
await page.scrollTo('.pagination');
const dom = ctx.dom(await page.content());
for (const card of dom.qa('.product-card')) {
const sku = card.attr('data-sku');
if (sku) ctx.emit({ sku, name: card.q('.title')?.text() ?? '' }, sku);
}
} finally {
await page.close();
}
}
Также доступны hover(selector), select(selector, value) и scroll(шаги, пауза). Для обхода нескольких страниц повторяйте действия внутри цикла, проверяйте появление новых карточек и задавайте верхний предел числа страниц. Подробнее: браузер и действия на странице.
Остальные возможности
Начните с жизненного цикла сценария: создание, проверка, пробный прогон, публикация, рабочий запуск и безопасный повтор. Затем откройте первый полный алгоритм. Вызовы к сервисам делайте с await; локальные операции, например ctx.text().money(), ctx.dom() и ctx.emit(), выполняются сразу.
Справочник методов
Каждая группа методов имеет собственную статью, как в справочнике PHP. Описаны назначение метода, его аргументы, результат, необходимость await и короткий пример.
| Задача | Статьи |
|---|---|
| Начало и результат | Context, состояние KeyValue |
| Сайт и HTML | HttpClient, Response, Dom, Node |
| Очистка данных | TextTools, UrlTools |
| Браузер | Browser, BrowserPage |
| Файлы и документы | Storage, Documents, Document, Worksheet, SheetCoordinates |
| Интеграции | Mail, Sources, Wildberries |
| Интеллектуальная обработка | Ai |
Практические задачи
Обход страниц, сбор из JSON, клики и прокрутка, журнал и прогресс показывают цельные сценарии. Интеграции объясняют, как связать входы процесса, файлы и готовые источники.
Расход AI и время обработки учитываются по тем же правилам, что для PHP. На своём агенте выберите JavaScript при создании агента. Можно включить только нужные языки; после выпуска токена изменить выбор нельзя. Сценарий не запустится на агенте, где его язык отключён.
После сохранения проверьте код, сделайте пробный прогон и сравните записи с исходным сайтом. Пошаговая отладка JavaScript пока недоступна; используйте пробный прогон и журнал. Примеры языков в разделе API предназначены для внешних программ, а не для кода сценария.
Работа с CAPTCHA: полные примеры
Каталог, пагинация, кнопка загрузки, прокрутка, вход, JavaScript-отрисовка и контрольные страницы разобраны в отдельном разделе. Каждый из 12 примеров содержит настройки, полный исходник и объяснение алгоритма.
Явные задания CAPTCHA
Актуальный каталог типов, схемы входных данных, оценка стоимости и получение результата доступны через ctx.captcha(). API работает в облаке и на агентах с оплатой из пространства. Справочник.