Извлечение нескольких значений подряд

Для случаев, когда из одного HTML кода нужно подряд извлечь несколько значений, сохраняя полученные результаты в один список или в отдельные переменные, в парсере предусмотрен набор из 3 следующих действий:

В большинстве случаев используются только первые 2 действия, а третье (Получить список значений) требуется только в том случае, когда нужно получить все извлеченные значения в одной строке.

Как бы выглядели настройки парсера без этих действий?
Было бы немного больше действий:

  • сохранить значение в переменную TXT (запомнили исходное значение, к которому будет возвращаться)
  • получить какой-то результат
  • сохранить результат в переменную 1
  • считать значение переменной TXT (возврат к исходному значению)
  • получить какой-то результат
  • сохранить результат в переменную 2
  • считать значение переменной TXT (возврат к исходному значению)
  • получить какой-то результат
  • сохранить результат в переменную 3
  • и т.д.

 

Как выглядит алгоритм с использованием действий для списка значений?
Чуть короче:

  • СОЗДАТЬ НОВЫЙ СПИСОК ЗНАЧЕНИЙ (запомнили исходное значение)
  • получить какой-то результат
  • ДОБАВИТЬ результат в переменную 1 (и заодно вернулись к исходному значению)
  • получить какой-то результат
  • ДОБАВИТЬ результат в переменную 2 (и заодно вернулись к исходному значению)
  • получить какой-то результат
  • ДОБАВИТЬ результат в переменную 3 (и заодно вернулись к исходному значению)
  • и т.д.

 

Когда надо извлечь 10-15 значений из одного исходного значения, — мы таким образом мы заметно укорачиваем список команд. К тому же, появляется возможность одним действием получить весь список извлечённых значений.

 

Примеры использования:

Пример 1: преобразование даты в американском формате написания в привычный нам формат:

Исходное значение
Дата (в американском формате месяц / день / год)
Действие Параметр Значение Результат
Создать новый список значений     <без изменений>
Часть строки по разделителю Разделитель / Число
Индекс нужной части 2
Список имён переменных через |  
Добавить значение в список значений Сохранить значение в переменную   Текст
Разделитель элементов списка |
Часть строки по разделителю Разделитель / Число
Индекс нужной части 1
Список имён переменных через |  
Добавить значение в список значений Сохранить значение в переменную   Текст
Разделитель элементов списка |
Часть строки по разделителю Разделитель / Число
Индекс нужной части 3
Список имён переменных через |  
Добавить текст ДО или ПОСЛЕ Префикс 20 Число
Суффикс  
Добавить значение в список значений Сохранить значение в переменную   Текст
Разделитель элементов списка |
Получить список значений     Текст
Заменить часть текста Что заменяем | Дата (в привычном нам формате день.месяц.год)
На что заменяем .
Количество замен все

 

Пример 2: извлекаем из HTML несколько значений подряд, не меняя исходного значения:

Действие Параметр Значение
запоминаем исходное значение (к которому парсер будет возвращаться после каждого действия «Добавить значение в список значений»)
Создать новый список значений    
HTML: Поиск тегов Тип элемента brand
Название проверяемого атрибута  
Значение проверяемого атрибута  
Тип результата / извлекаемый атрибут ConvertToText 1
Сохранить результат в переменную  
Использовать новое значение да
программа автоматически возвращается к исходному значению, запомненному при выполнении действия «Создать новый список значений»
Добавить значение в список значений Сохранить значение в переменную бренд
Разделитель элементов списка |
HTML: Поиск тегов Тип элемента salePrice
Название проверяемого атрибута  
Значение проверяемого атрибута  
Тип результата / извлекаемый атрибут ConvertToText 1
Сохранить результат в переменную  
Использовать новое значение да
программа автоматически возвращается к исходному значению, запомненному при выполнении действия «Создать новый список значений»
Добавить значение в список значений Сохранить значение в переменную цена
Разделитель элементов списка |
Выборка из XML Запрос XPath //sizes/size
Что выводить text
Название атрибута / маска текста  
Значение по умолчанию  
Сохранить результат в переменную  
Использовать новое значение да
ОБЪЕДИНИТЬ (сцепить) элементы массива Разделитель элементов массива ;
программа автоматически возвращается к исходному значению, запомненному при выполнении действия «Создать новый список значений»
Добавить значение в список значений Сохранить значение в переменную размеры
Разделитель элементов списка |
Исходное значение   Результат
<products index="1">
	<id>2871804</id>
	<name>Платье летнее</name>
	<brand>O'STIN</brand>
	<price>1281</price>
	<sale>20</sale>
	<salePrice>1024</salePrice>
	<sizes>
		<size index="1">36</size>
		<size index="2">38</size>
		<size index="3">40</size>
	</sizes>
	<picsCount>4</picsCount>
	<rating>5</rating>
	<feedbackCount>11</feedbackCount>	
</products>
 
<products index="1">
	<id>2871804</id>
	<name>Платье летнее</name>
	<brand>O'STIN</brand>
	<price>1281</price>
	<sale>20</sale>
	<salePrice>1024</salePrice>
	<sizes>
		<size index="1">36</size>
		<size index="2">38</size>
		<size index="3">40</size>
	</sizes>
	<picsCount>4</picsCount>
	<rating>5</rating>
	<feedbackCount>11</feedbackCount>	
</products>

Как видим, исходное значение не изменилось (можно продолжать извлекать из него данные), а в переменные успешно записались извлечённые значения:

 

Впрочем, в новой версии действия «HTML: Поиск тегов» можно извлечь все значения в переменные без дополнительных действий:

Действие Параметр Значение
HTML: Поиск тегов Тип элемента brand
Название проверяемого атрибута  
Значение проверяемого атрибута  
Тип результата / извлекаемый атрибут ConvertToText 1
Сохранить результат в переменную бренд
Использовать новое значение нет
HTML: Поиск тегов Тип элемента salePrice
Название проверяемого атрибута  
Значение проверяемого атрибута  
Тип результата / извлекаемый атрибут ConvertToText 1
Сохранить результат в переменную цена
Использовать новое значение нет
Выборка из XML Запрос XPath //sizes/size
Что выводить text
Название атрибута / маска текста  
Значение по умолчанию  
Сохранить результат в переменную размеры
Использовать новое значение нет