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

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

TypeScript SDK: Dom: поиск в HTML

ctx.dom(html, baseUrl) или response.dom() разбирает уже полученную страницу. CSS-селекторы ищут элементы локально, без нового запроса.

Примеры — отдельные фрагменты тела async function run(ctx: Akmelo.Context): Promise<void>. Используйте 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>

Находит числа по регулярному выражению TypeScript. Если есть первая группа захвата, берёт число из неё; иначе из полного совпадения.

const result = dom.numbersByPattern('(\\d+)', 'Цена 1250');