JavaScript SDK: Dom: поиск в HTML
ctx.dom(html, baseUrl) или response.dom() разбирает уже полученную страницу. CSS-селекторы ищут элементы локально, без нового запроса.
Примеры — отдельные фрагменты тела async function run(ctx). Используйте await только для методов с Promise в сигнатуре.
Как получить объект
const dom = ctx.dom('<a href="/product">Товар</a>', 'https://example.com');
Методы
q
dom.q(css) → Node | null
Найти первый HTML-элемент по CSS-селектору.
const result = dom.q('a');
qa
dom.qa(css) → Array<Node>
Найти все подходящие HTML-элементы.
const result = dom.qa('a');
first
dom.first(cascade) → Node | null
Попробовать несколько селекторов и взять первое найденное совпадение.
const result = dom.first(['.product', 'article']);
text
dom.text(css, default) → string | null
Получить текст первого совпадения, не создавая промежуточную переменную Node.
const result = dom.text('.product-title');
attr
dom.attr(css, attribute, default) → string | null
Прочитать атрибут первого найденного элемента.
const result = dom.attr('a', 'href');
maxNumber
dom.maxNumber(css) → number | null
Найти наибольшее число в текстах элементов, например номер последней страницы.
const result = dom.maxNumber('a');
numbersByPattern
dom.numbersByPattern(pattern, subject) → Array<unknown>
Находит числа по регулярному выражению JavaScript. Если есть первая группа захвата, берёт число из неё; иначе из полного совпадения.
const result = dom.numbersByPattern('(\\d+)', 'Цена 1250');