Save HeadHunter Resumes
Last updated
Last updated
Рассмотрим пример робота, который сохраняет резюме с сайта hh.ru.
Проект робота состоит из одной диаграммы.
Диаграмма проекта выглядит так (для удобства блоки диаграммы пронумерованы):
Блок “Старт” (с этого блока начинается любая диаграмма).
Блок “Окно для ввода текста” позволяет показать модальное диалоговое окно, предназначенное для получения информации от пользователя. Для данного блока указаны следующие свойства:
Заголовок (текст, который будет отображен в заголовке диалогового окна. В данном случае: “Sherpa RPA”);
Сообщение (текст, который будет отображен внутри диалогового окна. В данном случае: “Введите поисковый запрос:”)
Блок “Кодировать строку URL-адреса” позволяет кодировать строку для передачи в URL-адресе. Для данного блока указана входная строка “Текст”, а на выходе результирующая строка “Результат”.
Блок “Присвоить значение переменной” устанавливает новые значения для одной или нескольких переменных. В данном случае, в свойствах указано два значения, которые необходимо присвоить двум переменным, соответственно.
Блок “Запустить Chrome” позволяет запустить браузер Google Chrome. Для данного блока указаны следующие свойства:
URL (адрес открываемой при запуске страницы, указанный с помощью переменной);
Текущая вкладка (при установленном флаге страница откроется в текущей выбранной вкладке браузера);
Время ожидания (время ожидания запуска приложения и загрузки вкладки в секундах).
Блок “Посчитать элементы” позволяет получить количество однотипных элементов на веб-странице по заданному селектору. Для данного блока указаны следующие свойства:
Селектор (идентификатор окна браузера и элемента веб-страницы, общий для всех искомых однотипных элементов);
ID процесса (переменная, в которой хранится идентификатор процесса и вкладки браузера, используемые данным блоком);
Таймаут (предельное время подсчета элементов в секундах).
Блок “Цикл” позволяет повторить цепочку действий (блоков) несколько раз и при этом посчитать количество итераций цикла, записывая текущее количество в специальную переменную (указанную в свойстве “Цикл”), которую можно затем использовать в других блоках. При первом входе в блок значение переменной из свойства “Цикл” приравнивается к “Начальному значению” (в данном случае оно равно 0), а затем выполнение сценария продолжается в сторону выхода “Цикл” данного блока (в, так называемое, “тело цикла”). Как только выполнение сценария вновь дойдет до данного блока, значение переменной “Цикл” увеличится на значение “Шаг” (в данном случае, он равен 1), и вновь произойдет переход в сторону выхода «Цикл». Как только значение переменной “Цикл” станет больше или равно “Конечному значению” (в данном случае, оно задано переменной $Count), выполнение сценария продолжится в сторону нижнего выхода блока. Не забудьте соединить выход последнего блока в теле цикла со входом данного блока или какого-либо из предшествующих блоков.
Блок “Лог” позволяет выводить в лог произвольные сообщения и/или значения переменных в процессе работы сценария робота. Для данного блока указано свойство “Значение”. В кавычках указана текстовая константа, а имя переменной начинается с символа $. Т.е., данный блок записывает в лог робота индекс обработанной страницы.
Блок “Присвоить значение переменной” устанавливает новые значения для одной или нескольких переменных. В данном случае, в свойствах указано одно значение, которое необходимо присвоить одной переменной, соответственно.
Блок “Условие” проверяет указанное условие на истинность, после чего выполнение сценария продолжается в сторону выхода “Да” (если условие выполняется) или в сторону выхода “Нет” (если условие не выполнилось).
Условие записывается в формате: “переменная” равна (==)/ больше (>)/ меньше (<) “значение”.
Например: $a == “Привет”, то есть, если значение переменной $a равно “Привет”, то выход “Да”, в противном случае – выход “Нет”.
$Result > 5, то есть, если значение переменной $Result меньше 5, то выход “Да”, в противном случае – выход “Нет”.
В данном случае, в качестве условия установлено: $countpage==0. Т. е., переменная, указывающая номер страницы, равна нулю.
Блок “Присвоить значение переменной” устанавливает новые значения для одной или нескольких переменных. В данном случае, в свойствах указано два значения, которые необходимо присвоить двум переменным, соответственно.
Блоки 12. - 18. частично записаны с помощью инструмента “Запись”. Данные блоки содержат серию эмуляции кликов и нажатий на клавиши, результатом которых будет сохранение всего резюме в файл формата html.
19. Блок “Условие” проверяет указанное условие на истинность, после чего выполнение сценария продолжается в сторону выхода “Да” (если условие выполняется) или в сторону выхода “Нет” (если условие не выполнилось).
Условие записывается в формате: “переменная” равна (==)/ больше (>)/ меньше (<) “значение”.
Например: $a == “Привет”, то есть, если значение переменной $a равно “Привет”, то выход “Да”, в противном случае – выход “Нет”.
$Result > 5, то есть, если значение переменной $Result меньше 5, то выход “Да”, в противном случае – выход “Нет”.
В данном случае, в качестве условия установлено: $origfilename != "". Т. е., переменная не пустая.
20. Блок “Присвоить значение переменной” устанавливает новые значения для одной или нескольких переменных. В данном случае, в свойствах указано одно значение, которое необходимо присвоить одной переменной, соответственно.
21. Блок “Случайное число” генерирует случайное число с заданными параметрами. Для данного блока указаны следующие свойства:
Мин. значение (случайное число не будет меньше данного значения);
Макс. значение (случайное число не будет больше данного значения);
Шаг (шаг случайного числа).
22. Блок “Переименовать файл/папку” позволяет присвоить новое имя указанным файлу или папке. В данном случае, файлу. Для данного блока указаны следующие свойства:
Путь (путь к файлу, чье имя необходимо сменить);
Постфикс (постфикс, который будет добавлен к имени файла);
Временно (при установленном флаге переименование файла будет осуществлено только в рамках работы программы, изменений в файловой системе не произойдет.)
23. Блок “Присвоить значение переменной” устанавливает новые значения для одной или нескольких переменных. В данном случае, в свойствах указано одно значение, которое необходимо присвоить одной переменной, соответственно.
Блоки 24. – 25. содержат серию эмуляции нажатий на клавиши, результатом которых будет ввод имени файла в окно сохранения Google Chrome.
26. Блок “Клик мышкой” записан с помощью инструмента “Запись”. Данный блок эмулирует клик мышкой, результатом которого будет переход на следующую страницу.
27. Блок “Очистить кэш селекторов” позволяет очистить внутренний кэш селекторов. При использовании селекторов для ускорения поиска элементов на странице используется внутренний кэш. В кэш заносится информация об элементе после его успешного определения, и в дальнейшем при поиске элемента сначала проверяется кэш. Если в кэше присутствует информация по данному селектору, то она извлекается из него, что существенно ускоряет работу робота. Однако, в некоторых случаях, данный кэш может негативно сказываться на работе сценария. Часто это наблюдается при циклической обработке каких либо однотипных элементов на одной странице, например результатов поиска. В таких случаях рекомендуем очищать кэш при запуске каждой итерации перебора однотипных элементов на странице.
28. Блок “Закрыть вкладку браузера” позволяет закрыть заданную вкладку указанного браузера. Для данного блока указан ID процесса (переменная, в которой хранится идентификатор процесса и вкладки браузера, используемые данным блоком).
29. Блок “Пауза” приостанавливает выполнение работы сценария на заданное время. Для данного блока указаны следующие свойства:
Единица измерения (единица измерения, в которой задана длительность паузы);
Длительность (значение промежутка времени в заданных единицах измерения);
Запустить сразу (установленный флаг включает применение задержки сразу при первом проходе этого блока с момента запуска сценария робота).
30. Блок “Конец” (этим блоком завершается работа сценария или возврат диаграммы подпроцесса в основной процесс).