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

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

Python SDK: Node: элемент страницы

Dom.q() возвращает один элемент или None, а Dom.qa(): массив элементов. Проверяйте отсутствие элемента перед чтением.

Примеры являются фрагментами тела def run(ctx):. Все методы SDK синхронны, await не нужен.

Как получить объект

node = ctx.dom('<a href="/product">Product</a>', 'https://example.com').q('a')
if node is None:
    return

Методы

text

node.text(trim=True) -> str

Аргумент Тип Обязателен Назначение
trim bool Нет, default в сигнатуре Убирать пробелы по краям.

Результат: str.

Получить текст найденного элемента. Повторяющиеся пробелы и переводы строк объединяются.

result = node.text()

html

node.html() -> str

Аргументы не нужны.

Результат: str.

Получить HTML элемента целиком, включая его собственный тег.

result = node.html()

attr

node.attr(name) -> str | None

Аргумент Тип Обязателен Назначение
name str Да Имя поля, заголовка, файла, секрета или метрики по назначению метода.

Результат: str | None.

Получить значение одного атрибута.

result = node.attr('href')

abs

node.abs(name='href') -> str | None

Аргумент Тип Обязателен Назначение
name str Нет, default в сигнатуре Имя поля, заголовка, файла, секрета или метрики по назначению метода.

Результат: str | None.

Получить полный URL из атрибута. По умолчанию используется href.

result = node.abs('href')

q

node.q(selector) -> Node | None

Аргумент Тип Обязателен Назначение
selector str Да CSS-селектор элемента.

Результат: Node | None. Объект SDK: используйте его методы, не передавайте целиком в emit.

Найти первый подходящий элемент внутри текущего фрагмента.

result = node.q('.price')

qa

node.qa(selector) -> list[Node]

Аргумент Тип Обязателен Назначение
selector str Да CSS-селектор элемента.

Результат: list[Node].

Получить все совпадения внутри текущего фрагмента.

result = node.qa('a')

exists

node.exists() -> bool

Аргументы не нужны.

Результат: bool.

Проверить существование уже полученного объекта Node.

result = node.exists()

Ошибки и контекст выполнения

Все вызовы синхронны. Неверный аргумент или формат данных может вызвать ValueError/TypeError; отказ платформы или недоступность сервиса вызывает RuntimeError. Отсутствие элемента/значения даёт None либо пустой список только там, где это явно описано. Не превращайте любое исключение в пустой успешный результат. Методы внешних сервисов недоступны в преобразовании выгрузки; см. ограничения преобразований и среду.