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 либо пустой список только там, где это явно описано. Не превращайте любое исключение в пустой успешный результат. Методы внешних сервисов недоступны в преобразовании выгрузки; см. ограничения преобразований и среду.