Набор программ для получения вакансий с сайта hh.ru через публичный API с расширенной информацией.
Проект содержит три варианта программы для поиска различных PHP-вакансий:
- main.go - поиск вакансий PHP (общий поиск)
- teamlead.go - поиск вакансий PHP Team Lead
- techlead.go - поиск вакансий PHP Tech Lead
Программа:
- Получает все доступные страницы результатов (не только первые 100 вакансий)
- Выводит детальную информацию о каждой вакансии:
- Название вакансии
- Компанию-работодателя
- Местоположение
- Зарплату (если указана)
- Контактную информацию (ФИО, email, телефоны - если доступна)
- Ссылку на вакансию
- Соблюдает лимиты API с задержками между запросами (200мс между страницами, 100мс между детальными запросами)
- Go 1.21 или выше
# Без компиляции
go run main.go
# С компиляцией
go build -o hh-vacancies main.go
./hh-vacancies# Без компиляции
go run teamlead.go
# С компиляцией
go build -o hh-teamlead teamlead.go
./hh-teamlead# Без компиляции
go run techlead.go
# С компиляцией
go build -o hh-techlead techlead.go
./hh-techleadПрограмма выводит информацию о вакансиях в следующем формате:
Найдено вакансий: X
Получено на первой странице: Y
Список вакансий:
================================================================================
1. Название вакансии
Компания: Название компании
Местоположение: Город
Ссылка: https://hh.ru/vacancy/...
Зарплата: от X до Y RUB (если указана)
Контакты: (если доступны)
ФИО: Имя Фамилия
Email: email@example.com
Телефон: +X (XXX) XXXXXXX
2. ...
В каждом из файлов можно изменить параметры поиска:
searchText- поисковый запрос:- main.go:63 - "PHP"
- teamlead.go:63 - "PHP team lead"
- techlead.go:63 - "PHP tech lead"
areaв параметрах API - регион поиска (113 - Россия)perPage- количество вакансий на страницу (максимум 100)
Программа использует следующие структуры для работы с API:
Vacancy- базовая информация о вакансииVacanciesResponse- ответ API со списком вакансийVacancyDetails- детальная информация о вакансии (включая зарплату и контакты)
getVacancies(text, page, perPage)- получение списка вакансийgetVacancyDetails(vacancyID)- получение детальной информации о вакансииprintVacancy(counter, vacancy)- форматированный вывод вакансии
Программа соблюдает ограничения API hh.ru:
- Задержка 200мс между запросами страниц
- Задержка 100мс между запросами детальной информации
- Обязательный User-Agent заголовок
Программа использует публичный API hh.ru:
- Список вакансий: https://api.hh.ru/vacancies
- Детальная информация: https://api.hh.ru/vacancies/{id}
Документация API: https://github.com/hhru/api