Методы для работы с регистром

Parse

С помощью команды parse вы можете извлекать данные из текущего блока и записывать их в регистр. В дальнейшем эти данные могут быть изменены, нормализованы, записаны в переменные или в поля объектов.

Обратите внимание!
Parse всегда возвращает какое-то значение в регистр, или пустую строку, если в блоке нет контента для извлечения. Команда может возвращать текстовый или HTML контент блока, а также значение аттрибута текущего HTML элемента (корневого элемента блока).

Примеры записи в коде:

          - find:
    path: a.somepath
    do:
    # ПАРСИМ ТЕКСТОВЫЙ КОНТЕНТ ВЫБРАННОГО БЛОКА
    - parse

    # ПАРСИМ АТТРИБУТ `href` НАЙДЕННОГО ЭЛЕМЕНТА `a`
    - parse:
        attr: href

    # ПАРСИМ HTML КОНТЕНТ ВЫБРАННОГО БЛОКА
    - parse:
        format: html
          
          # ИСПОЛЬЗУЕМ ФИЛЬТРЫ (РЕГУЛЯРНЫЕ ВЫРАЖЕНИЯ) ДЛЯ ИЗВЛЕЧЕНИЯ НУЖНОГО ФРАГМЕНТА ДАННЫХ
- find:
    path: .somepath
    do:
    - parse:
        filter:
        - .+=(\d+)
        - (.+)

- find:
    path: .somepath
    do:
    - parse:
        attr: class
        filter:
        - .+=(\d+)
        - (.+)
          

Команда parse поддерживает следующие параметры:

Параметр Описание
format Формат извлеченных данных, text или html. Если параметр не передан, будет извлечен текст.
attr Если передан, будет извлечено значение аттрибута корневого тега текущего блока, имя которого передано в параметре. Если не передан - будет извлечен весь контент блока.
filter Одно или несколько регулярных выражений для извлечения только определенных данных из контента. Извлекаемые данные должны быть заключены в круглые скобки внутри регулярного выражения (определены как группа). Если указано несколько регулярных выражений, то они используются по порядку пока не будет извлечена не пустая строка используя текущий фильтр.
joinby Значение этого параметра используется для соединения найденных фильтром групп. Если параметр отсутствует и фильтр найдет несколько групп, то они будут соединены пустой строкой.

Теперь давайте рассмотрим более детальные примеры использования команды parse. В качестве данных возмем фрагмент html документа:

          <ul class="list" >
  <li class="list-item" id="1">Some text</li>
  <li class="list-item" id="item=2"><a href="http://somesite.com/">Link</a></li>
  <li class="list-item" id="item=3">Some other text</li>
</ul>
          

Варианты использования команды:

              # НАЙДЕМ `ul` И ЗАПОЛНИМ РЕГИСТР ЕГО СОДЕРЖИМЫМ
- find:
    path: .list
    do:
    - parse
    # В РЕГИСТРЕ НАХОДИТСЯ "Some textLinkSome other text"
              

Далее мы рассмотрим еще одну команду, которой можно устанавливать значение регистра: register_set.