July 15, 2023

Анализ HR вакансий. Часть 4. Автоматизация процесса

В прошлый раз мы написали с вами скрипт [1], который позволяет собирать HR вакансии с сайта hh.ru [2]. Если мы хотим с вами решить задачу ad hoc аналитики, то могли бы удовлетвориться тем, что уже имеем. Но мы помним, что наша конечная цель – это дашборд, который должен отражать актуальные данные. Согласитесь, что вручную запускать скрипт каждый раз совершенно бы не хотелось и, разумеется, мы не будем этого делать. Вместо этого мы регуляризируем наш процесс по сбору вакансий или более простыми словами – автоматизируем его.

Когда-то я вдохновился примером из книжки Алексея Селезнева [3], как можно использовать планировщик заданий Windows для запуска процессов по расписанию. Конечно, это всё имеет смысл, если у вас есть сервер в каком-либо виде, который постоянно включен в сеть, про это мы говорили в первой статье цикла [4].

Для начала нам нужно создать папку, в которой у нас будет лежать всё необходимое. В моём случае это будет следующая директория: C:\db\Upload\. Далее мы напишем исполняемый .bat файл, задача которого запускать скрипт. Сделать это крайне просто, для этого используем обычный Блокнот (Notepad) в Windows. Если вы выбрали вариант на R, то запускаем Блокнот и пишем в нём:

@echo off
set "logFile=C:\db\Upload\log.txt"
del "%logFile%"
"C:\Program Files\R\R-4.3.0\bin\Rscript.exe" "C:\db\Upload\hr_vacancies.R" >> "%logFile%" 2>&1

Разберем эти четыре строчки кода:

  • @echo off – отключаем отображение команд во время их исполнения.
  • set "logFile=C:\db\Upload\log.txt" и del "%logFile%" – эти команды отвечают за создание текстового файла, в который мы будем писать логи. Это полезно, если наш процесс поломается, и мы захотим разобраться в причинах.
  • В этой строчке "C:\Program Files\R\R-4.3.0\bin\Rscript.exe" указываем место, где на вашем компьютере располагается файл запуска R. Далее указываем место, где расположен скрипт, который надо запустить "C:\db\Upload\hr_vacancies.R". Последняя часть нужна для записи логов в текстовый файл >> "%logFile%" 2>&1.

Если вы выбрали Python, то отличие будет только в последней строчке: нужно указать пути до файла запуска Python на вашей машине и .py скрипта. В моём случае это было бы так: "C:\Users\Administrator\anaconda3\python.exe" "C:\db\Upload\hr_vacancies.py" >> "%logFile%" 2>&1

Придумываем название и сохраняем файл upload_hr_vacancies.bat в расширении .bat. Убедитесь, что расширение применилось и это не текстовый файл больше.

Исполняемый файл готов, теперь мы должны дать команду нашему компьютеру запускать его по расписанию. Нажимаем пуск и находим приложение Task Scheduler (Планировщик заданий). В открывшемся окне мы видим список уже запланированных заданий, мы же создаем новое командой Create Task.

Придумываем название для нашего задания vacancies_hr.

Переходим на вкладку Triggers и создаем новый триггер: будем запускаться ежедневно (Daily) в 23:30.

Осталось указать, что запускать. Переходим на вкладку Actions, создаём новое действие и прокладываем путь до нашего исполняемого файла.

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

В следующий раз мы начнём знакомство c DataLens, в котором будем строить дашборд на основе данных HR вакансий hh.ru.

Ссылки

  1. Анализ HR вакансий. Часть 3. Парсим HR вакансии
  2. https://hh.ru/
  3. Селезнев А. Разработка telegram ботов на языке R
  4. Анализ HR вакансий. Часть 1. Разворачиваем базу данных