Парсинг вакансий и резюме с HH
В статье я рассмотрю легальный способ получения данных по вакансиям и резюме с Head Hanter.
Полученные данные НЕ будут содержать ФИО и контактных данных -- для их получения вы можете воспользоваться платными сервисами самого HH. На выходе мы получим ровно те данные, которые даёт официальный сайт, только автоматическим способом.
Наша цель - создать систему, которая будет регулярно отслеживать сайт hh.ru и присылать уведомления в Telegram. Причем, мы решим сразу две задачи:
- Для того, кто ищет работника: Мониторить появление новых резюме по ключевому запросу (например, «Python разработчик»).
- Для того, кто ищет работу: Мониторить появление новых вакансий по нескольким IT-специальностям (Python, Java, Frontend).
В этой статье мы будем использовать только бесплатные и легальные способы получения информации.
Для парсинга Вакансий мы будем использовать официальное, документированное API hh.ru.
Для парсинга Резюме используем парсинг с помощью requests и BeautifulSoup.
Для автоматизации ежедневного выполнения кода будет использован сервис Cron Jobs от облака для простого хостинга Amvera, в котором мы запустим наш скрипт всего одной командой в IDE "git push amvera master".
Парсинг вакансий c hh
Наш скрипт будет содержать основной python файл, файл с библиотеками requirements.txt и конфигурацию.
Полный код вы можете найти по ссылке в GitHub.
Код содержит комментарии, приведу только отрывки по получению данных и их фильтрацией.
Нам потребуются переменные
Получение данных с пагинацией мы осуществим так:
А фильтрацию так:
На выходе мы получим примерно такой отчет:
Парсинг резюме с hh
После рассмотрения парсинга вакансий перейдем к анализу рынка кандидатов.
Следует отметить, что HH предоставляет возможность получения данных через API, но для этого требуется написать заявление на сайте или можно купить эту услугу. Поэтому предлагаю воспользоваться парсингом, тем более мы не будем получать данные, тарифицируемые площадкой -- а соберем только то, что доступно на сайте.
Общая схема работы
- Поиск резюме
- Загрузка страницы поиска по разработчикам Python
- Извлечение данных
- Парсинг ссылок, заголовков и контекста
- Проверка уникальности
- Сохранение в базу данных SQLite
- Формирование отчета
- Статистика и список новых резюме
- Отправка в Telegram*
- Автоматическая рассылка уведомлений
Полный скрипт доступен по ссылке.
Отмечу, что нам потребуются следующие переменые.
Нужно вручную выставить необходимые фильтры на hh.ru и скопировать ссылку в код.
Извлекаем резюме мы так
И если все хорошо, то получим вот такой отчет в ТГ.
Запуск на хостинге по расписанию через git push
Как и говорилось в начале статьи, запустим мы наш код буквально за пару минут "одной" командой в IDE или просто перетянув файлы в интерфейсе Amvera Cloud. Сделаем это бесплатно, воспользовавшись промобалансом.
Для этого создадим проект с типом Cron Jobs (или Приложение, если хотите непрерывной работы).
Загрузим код через git push
Или перетянем код в интерфейсе
Далее ждем пару минут сборку и наш проект в Amvera запущен!
Итог нашего парсинга резюме и вакансий с HH
Мы написали простой скрипт получения данных резюме и вакансий с HH. Он собирает только данные, легально предоставляемые работной платформой.
И развернули наш код в облаке Amvera за две минуты, просто выполнив команду git push amvera master.