Поиск вакансий на hh.ru по ключевому слову

С помощью REST-запроса у пользователей есть возможность импортировать данные из многих источников, которые поддерживают API протокол. Примером такого сервиса является hh.ru. HeadHunter — один из самых крупных в мире сайтов по поиску работы и сотрудников (по данным рейтинга Similarweb).

Пример демонстрирует поиск вакансий по ключевому слову посредством REST-запроса, парсинг и постобработку JSON ответа.

Запустить демо

Установить локально

Описание алгоритма

Примечание: Демопример имеет ограничение демонстрации всех возможностей при запуске на демостенде (Запустить демо). Рекомендуем установить пример локально.

Документация по API.

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.