Вкладка "Исходные действия"

"Исходные данные" - это вкладка, на которой указываются действия по обработке данных, предшествующие выводу на лист.

Можно образно сказать, что здесь загружаются, формируются или обрабатываются данные перед тем, как парсинг переходит к выводу на лист или к скачиванию файлов.

Вкладка состоит из двух блоков: верхний (Источник данных) и нижний (Список действий). Верхний блок также имеет несколько вариантов отображения в зависимости от выбранного через выпадающий список режима.

  1. Источник данных
    1. Брать данные с листа Excel из заданного столбца
    2. Использовать диапазон числовых значений
    3. Фиксированное исходное значение (или список значений)
    4. Брать данные с листа Excel из найденного столбца
    5. Искать все ячейки/гиперссылки в диапазоне
  2. Список действий

Вкладка парсера Исходные данные

 

Блок Источник данных

Задачей блока "Источник данных" является формирование массива исходных значений, которые по одному будут передаваться на первый уровень списка действий и подставляться в поле "Исходное значение" редактора списка действий (на скриншоте ниже выделено красным).

Реальной подстановки в поле значений не происходит. В данном контексте слово "подставляется" используется лишь для объяснения механизмов работы парсера.

То есть, если мы выбрали режим "Брать данные с листа Excel из заданного столбца" и указали столбец 1 "A" в качестве источника данных, то из этого столбца значения ячеек по одному будут подставляться в поле исходное значение (на скриншоте). И если в 1 столбце, например, было 10 ссылок, то парсер будет обрабатывать данные ссылки по одной.

Точно так же парсер будет работать для всех других режимов блока "Источник данных". Значения передаются по одному.

 

Режим Брать данные с листа Excel из заданного столбца

В данном режиме парсер берет все непустые значения из указанного столбца (по умолчанию - 1 "А"), начиная с указанной строки (по умолчанию - 2).

Доступные опции:

Опция Обрабатывать только выделенные строки 

Если данная опция включена, то парсер будет обрабатывать только выделенные строки или строки, которые содержат выделенные ячейки.

Другими словами необязательно выделять строку целиком, достаточно выделить ячейки в одном столбце, причем необязательно в том, где находятся исходные данные.

Например на скриншоте мы выделили диапазон ячеек B5:B8. При включенном режиме "Обрабатывать только выделенные строки" и указанном столбце 1 "А", в качестве исходных данных у нас будет 4 ссылки из первого столбца.

Данную опцию удобно использовать для тестирования парсера, когда нет необходимости проверять все исходные данные, а нужно проверить только одну или несколько строк.

Опция Брать отображаемый текст ячеек (а не значения)

Данная опция по умолчанию выключена и парсер берет значение ячейки, а не отображаемый текст. Опция может понадобиться при использовании в ячейках нестандартных форматов отображения данных.

Например здесь в ячейке А1 отображается 000100, а значение ячейки равно 100 (что видно в строке формул выше). Это может быть почтовый индекс или артикул автомобильной запчасти. Если галка опции Брать отображаемый текст ячеек (а не значения) установлена, то из данной ячейки будет взята строка 000100, а если галка опции отключена (по умолчанию), то будет взято число 100.

В случае, если ячейка содержит гиперссылку, то значением для парсера считается именно гиперссылка, а не то, что отображается в ней. Смотрим пример.

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

Опция Обрабатывать только строки, где значение столбца ... равно ...

При включении данной опции парсер берет в исходные значения только те строки, которые соответствуют заданному условию. Разберем на примере, как можно использовать данную опцию.

Для всех вариантов Исходные данные находятся в столбце 1 "А".

Вариант №1. Обрабатывать только строки, где значение столбца 1 "А" равно http*

Здесь мы выбрали для проверки тот же столбец, что является у нас исходным, и указали парсеру брать все строки, где значение начинается с http. Звездочка в данном случае обозначает любой символ. В качестве исходных данных будут взяты 9 ячеек со ссылками.

Вариант №2. Обрабатывать только строки, где значение столбца 2 "В" равно 

Здесь мы будем сверяться по соседнему столбцу 2 "В". Поле правее слова "равно" мы оставили пустым. Т.е. парсер обрабатывает только те строки, где пустой столбец 2 "В". В качестве исходных данных будут взяты последние 6 строк, у которых пустой соседний столбец.

Данный вариант удобно использовать, когда надо обработать большой список значений в несколько заходов. Парсер после обработки ссылки может ставить в соседний столбец какую-нибудь метку. При повторном запуске мы прописываем условие как в данном варианте №2, и парсер будет обрабатывать только те строки, где метки не стоит.

Вариант №3. Обрабатывать только строки, где значение столбца 2 "В" равно ?*

В данном случае мы используем подстановочные символы. Звездочка, как мы знаем обозначает любой символ или отсутствие символов. Знак вопроса означает любой символ. Таким образом мы говорим парсеру обрабатывать строки, где в соседнем столбце 2 "В" есть хотя бы один символ (или больше). Будут обработаны только первые 5 строк (если мы начинаем со второй строки).

Еще один подстановочный символ, который можно использовать в поле правее слова "равно" - # - обозначает любую цифру.

Вариант №4. Обрабатывать только строки, где значение столбца 3 "С" равно шт

Для данного варианта свой пример таблицы (см. скриншот ниже). В поле правее слова "равно" можно вписывать любые значения с использованием подстановочных символов * ? # или без них. Указанный вариант №4 может быть использован, например, в прайсе, где вперемешку идут названия категорий и сами товары.

В данном примере будут обработаны только 10 строк, соответствующие условию.

 

Режим Использовать диапазон числовых значений

Данный режим создает массив чисел с заданным шагом. Единственная опция позволяет исключать значения, присутствующие в выбранном столбце.

Не рекомендуется задавать слишком большой интервал чисел (который приведет к созданию массива с более чем сотней тысяч элементов) - это может привести к временному зависанию программы. Если по каким-то причинам вам нужно перебрать, например, миллион значений, то на первом этапе создайте массив с шагом 1000, а потом каждую тысячу при помощи списка действий преобразуйте в очередной массив уже с шагом 1. То же самое правило относится к работе с массивами внутри списка действий.

 

Режим Фиксированное исходное значение (или список значений)

В данном режиме можно указать как одно исходное значение (например, ссылку или какое-нибудь слово, обозначающее категорию товаров на сайте), так и список значений (при установленной галке "Несколько исходных значений").

При включении режима списка значений блок Источник данных принимает следующий вид:

Исходное значение можно оставить пустым. Это применяется, например, когда для начала парсинга нужно получить содержимое текстового файла или содержимое папки на компьютере.

 

Режим Брать данные с листа Excel из найденного столбца

Данный режим похож на режим "Брать данные с листа Excel из заданного столбца", однако тут заранее неизвестно расположение столбца. Применяется, например, когда есть несколько исходных файлов, в которых ссылки на один и тот же сайт находятся в разных столбцах, при этом название у столбцов одинаковое.

В заданной строке (по умолчанию "в строке номер 1"), ищется текст, указанный в поле "Искать текст" (по умолчанию подстановочный код {ParserName} - имя текущего парсера). Если параметр "Смещение по столбцам от найденного" равен 0 (по умолчанию), то берутся данные из столбца, где в указанной строке был найден нужный текст. Если смещение равно 1, то берется соседний столбец справа, если -1, то слева и т.д. (См. также скриншот ниже.)

Нажатие на изображение лупы в поле "Искать текст" запускает поиск нужного столбца с учетом смещения (и позволяет понять - находится вообще нужный столбец или нет).

На примере: после нажатия на лупу, парсер ищет в 1 строке слово "метка" (могут использоваться подстановочные символы * ? #), и производит смещение от найденного столбца на 1 столбец вправо.

Остальные опции и параметры аналогичны режиму "Брать данные с листа Excel из заданного столбца", за исключение того, что последняя опция "Обрабатывать только строки, где значение столбца со смещением ... равно ..." принимает не абсолютное положение столбца, а относительное - со смещением относительно найденного столбца (0 - тот же столбец, 1 - соседний столбец справа, -1 - соседний столбец слева и т.д.).

 

Режим Искать все ячейки/гиперссылки в диапазоне

Данный режим позволяет искать исходные значения на всем листе или в выбранном диапазоне. Может заменять собой режим поиска столбца в случае, например, если во всем столбце находятся ссылки на один и тот же сайт - можно задать маску с подстановочными символами *домен_сайта.ru/*

При помощи выпадающих списков можно выбирать, что именно искать: значения, гиперссылки (по умолчанию) или примечания, а также где искать: на всем листе (по умолчанию), в выделенном диапазоне (selection), в фиксированном диапазоне, в сохраненном в переменной диапазоне (%диапазон%).

При нажатии на лупу парсер ищет по маске подходящие элементы и показывает количество найденных элементов.

Если парсер пишет, что ничего не найдено, то попробуйте сохранить настройку и открыть заново. Если и после этого ничего не находится, то всё равно попробуйте запустить парсер, есть вероятность, что в отличие от режима настройки, в режиме работы нужные ссылки будут найдены.

 

Блок Список действий

Список действий представляет из себя набор уровней (подуровней), каждый из которых является для последующего источником исходных значений. Взаимосвязь каждого уровня с последующим такая же, как между блоками "Источник данных" и "Список действий" - значения переходят с уровня на подуровень по одному.

Например, на первом уровне мы получили массив из 10 значений. Каждое из этих значений переходит по одному на 2 подуровень, где в результате преобразований мы получаем массив из 5 значений. Каждое из этих значений переходит по одному либо на следующий подуровень, либо если его нет - на вывод на лист или на загрузку файлов (в этом случае мы получим 10 * 5 = 50 строк).

Если в результате обработки данных списком действий мы получаем на самом "нижнем" подуровне пустое значение, то дальнейшего перехода к выводу на лист или к скачиванию файлов не происходит (с оговоркой, написанной в информационной сноске ниже). Поэтому если вам нужно, чтобы любое исходное значение было отражено на выходе (например, в новом формируемом файле), нужно быть уверенным в том, что значение "на выходе" вкладки "Исходные данные" будет не пустым. Для этого можно использовать, например, действие из раздела "Текстовые" - "Значение по умолчанию".

Данное правило не работает в случае перехода между уровнями. Если на выходе 1 уровня будет пустое значение, то действия второго подуровня все равно будут запущены. Это нужно учитывать при создании сложных настроек.

Если быть точным, то определение - перейдет ли парсер к действиям столбцов вывода на лист или нет - происходит на подвкладке "Дополнительно" вкладки "Вывод на лист". То же самое касается подвкладки "Дополнительно" вкладки "Загрузка файлов". Однако ввиду того, что данные подвкладки используется крайне редко и чаще всего остаются пустыми, в контексте данной статьи можно пренебречь ими.

Кнопка "Run ParserStart" отображается только при включенном в общих настройках программы "Режиме разработчика". Её функция - запуск специального набора действий "ParserStart". Используется, например, в тех случаях, когда нужно протестировать работу парсера и быстро пройти авторизацию (без перехода на вкладку "Дополнительно", подвкладку "Наборы действий" и т.д.)

Кнопка "Редактировать список действий" открывает второе окно программы - окно редактора списка действий. Редактируемый уровень выбирается переключателем "Текущий уровень". Также возможно перемещаться на нижележащий уровень при помощи кнопки "Перейти на подуровень ...". Если ниже нет никакого уровня, то кнопка меняется на "Добавить подуровень ...".

Справа от переключателя "Текущий уровень" находится кнопка удаления подуровня и всех его действий. Данное действие нельзя отменить.

Справа от кнопки "Редактировать список действий" находится кнопка вставки разрыва подуровней (она появляется только при условии, что в списке действий слева выбрано какое-либо действие). На скриншоте отмечена красным.

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

Выделенное действие и всё, что "выше", осталось на месте. 3 и 4 действие перешли на 2 подуровень. Если бы в настройке до нажатия кнопки был подуровень №2, он бы стал подуровнем №3.

Кстати, обратите внимание, что сейчас на скриншоте не выделено ни одно действие, как следствие кнопка вставки разрыва не видна.