Поиск вакансий на hh.ru по ключевому слову
С помощью REST-запроса у пользователей есть возможность импортировать данные из многих источников, которые поддерживают API протокол. Примером такого сервиса является hh.ru. HeadHunter — один из самых крупных в мире сайтов по поиску работы и сотрудников (по данным рейтинга Similarweb).
Пример демонстрирует поиск вакансий по ключевому слову посредством REST-запроса, парсинг и постобработку JSON ответа.
Описание алгоритма
Примечание: Демопример имеет ограничение демонстрации всех возможностей при запуске на демостенде (Запустить демо). Рекомендуем установить пример локально.
1. Отправка и получение REST-запроса
На странице Подключения настроено подключение REST-сервис:
- URL сервиса:
https://api.hh.ru/vacancies
- Метод: Get
- Типа авторизации: Не требуется
Во входном порту подмодели REST-запрос созданы 3 переменные, которые внутри подмодели передаются в узел Параметры запроса для преобразования в таблицу:
Имя | Метка |
---|---|
text | Ключевое слово |
page | Страница |
per_page | На странице |
Узел REST-запрос (внутри подмодели) принимает параметры, отправляет запрос с указанными параметрами к веб-сервису и возвращает ответ в формате JSON.
В настройках узла установлена связь между входным полем Ключевое слово и Объектом text.
2. Парсинг и постобработка данных
Примечание: Веб-сервис разработан таким образом, что он не выдает всю запрашиваемую информацию в одном REST запросе. Полный ответ разделен на страницы, поэтому для его получения требуется использовать пагинацию. В рамках данного примера пагинация не используется.
В подмодели Обработка JSON формата выполняется парсинг данных и их постобработка для корректного вывода.
Разбор JSON и постобработка выполняются с помощью компонента из демопримера Парсинг JSON. Скачать пакет, в котором реализован компонент, можно по ссылке.
Узел Обработка JSON формата создан на основе производного компонента как производный узел (предварительно пакет, в котором реализован компонент, подключен по ссылке).
На выходе узла Обработка JSON (внутри подмодели Обработка JSON формата) результат разбора ответа веб-сервиса в виде «ключ:значение»:
Имя | Описание |
---|---|
ID | Идентификатор JSON во входном наборе данных |
Parent | Путь к элементу JSON от корня. Состоит из ключей родительских элементов |
Key | Ключ элемента JSON |
Type | Тип данных элемента JSON |
Value | Значение элемента JSON |
Для решения текущей задачи выполнена модификация производного узла Обработка JSON формата без изменения производного компонента, из которого он создан. Внутри подмодели Обработка JSON формата были перенастроены узлы Фильтр строк и Кросс-таблица, добавлен узел Калькулятор.
В узле Фильтр строк удаляются лишние записи. Настройки узла:
Parent <> root:items
В узле Калькулятор присваивается каждой вакансии ее номер, данному полю задается метка Фильтр:
RegExMatchedExp("\d{1,}", parent)
С помощью узла Кросс-таблица данные преобразуются в удобный для дальнейшей обработки табличный вид. Настройки узла:
- Колонки: Key, для измерения установлено Минимальное количество уникальных значений 0 (настройка выполняется через команду Редактировать)
- Строки: Фильтр
- Факты: value (Первый)
Скачайте и откройте файл в Loginom. При необходимости Loginom CE можно скачать бесплатно
Минимальные требования к системе:
- Операционная система: Windows 8.1 и выше.
- CPU x64: 1 core.
- Оперативная память: 1 GB.
- Жесткий диск: 10 GB.