Skip to content

i-savelev/hh_parser

Repository files navigation

📊 HH Parser — Парсер вакансий с HeadHunter (hh.ru)

Этот скрипт позволяет автоматически собирать данные о вакансиях с публичного API HeadHunter по заданным ключевым словам, регионам и отраслям. Данные собираются в pandas Dataframe. Поддерживается экспорт в JSON.


🚀 Возможности

  • Поиск вакансий по ключевым словам
  • Фильтрация по регионам (ID городов/областей)
  • Опциональная фильтрация по отраслям (например, «Строительство» → ID 13)
  • Сбор до 2000 вакансий (20 страниц × 100 на странице) - больше не дает hh api
  • Сохранение запроса в json
  • Возврат pandas Dataframe с структурой: Запрос | Дата | Вакансия | Город | Компания | Ссылка | ЗП | Валюта | Требования | Обязанности
  • Вспомогательные функции для загрузки справочников:
    • /areas — регионы и города
    • /industries — отрасли экономики

▶️ Использование

1. Пример запуска

from hh_requests import *

# Словарь: ключ — запрос, значение — список ID отраслей (None = без фильтрации)
vacancies_dict = {
    'bim-менеджер': None,
    'архитектор': [13],
    'инженер-конструктор': [13],
    'курьер': None
}

# Регионы: 1 — Москва, 2 — Санкт-Петербург
df = get_vacancies_df_from_dict(vacancies_dict, regions=[1, 2])

# Сохранение в Excel
current_date = datetime.now().strftime("%Y-%m-%d")
df.to_excel(f'reports/excel/Вакансии_{current_date}.xlsx', index=False)

В репозитории выложен ноутбук hh.ipynb с примерами использования. Там же ессть пример обработки данных и построения графиков.

2. Полезные функции

Функция Назначение
save_regions_as_json() Сохраняет справочник регионов в .files/areas.json
save_industries_as_json() Сохраняет справочник отраслей в .files/industries.json
save_vacancies_as_json(...) Сохраняет сырые данные по запросу в .files/запрос_дата.json
get_vacancie_df(...) Возвращает pandas.DataFrame по одному запросу
get_vacancies_df_from_dict(...) Агрегирует несколько запросов в один DataFrame

📚 Справочники

Регионы (areas)

Отрасли (industries)

  • Строительство → 13
  • IT, Интернет, телеком → 7
  • Образование → 39
  • Финансы → 43
  • Полный список: https://api.hh.ru/industries

💡 Пример: чтобы искать только вакансии архитекторов в строительстве — используйте 'архитектор': [13].


⚠️ Важно

  • API hh.ru не требует авторизации, но имеет лимиты на частоту запросов.
  • В скрипте добавлена задержка time.sleep(1) между страницами — этого обычно достаточно.
  • Не рекомендуется запрашивать более 20 страниц за раз (максимум ~2000 вакансий).
  • Убедитесь, что вы соблюдаете условия использования API hh.ru.

Пример моей статьи, данные для которой я получил с помощью этого скрипта: ссылка

About

A Python script to parse job vacancies from HeadHunter (hh.ru) API by keywords, regions, and industries, and export the results to JSON and pd.Dataframe

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors