Этот проект направлен на сбор данных о компаниях и вакансиях с hh.ru с последующим хранением в базе данных PostgreSQL. Для удобства работы с данными реализован класс DBManager, который обеспечивает простое взаимодействие с базой данных.
Проект включает следующие основные компоненты:
- Сбор данных через API hh.ru
- Создание структуры базы данных PostgreSQL
- Загрузка собранных данных в таблицы базы данных
- Реализация методов для анализа и получения информации из базы данных
- Клонируйте репозиторий:
git clone https://github.com/your-repo-url.git
2. Установите все зависимости:
pip install -r requirements.txt
3. Настройте файл конфигурации `database.ini` с параметрами подключения к вашей базе данных PostgreSQL.
4. Запустите скрипт:
python main.py
## Использование
После запуска программы вы увидите меню с возможными действиями:
1. Получение списка всех компаний и количества вакансий у каждой компании
2. Получение списка всех вакансий с указанием названия компании, названия вакансии, зарплаты и ссылки на вакансию
3. Получение средней зарплаты по вакансиям
4. Получение списка всех вакансий с зарплатой выше средней
5. Получение списка всех вакансий по ключевому слову
6. Показ вариантов использования
7. Выход из программы
## Класс DBManager
Класс DBManager реализует следующие методы:
### Методы класса DBManager
- `connect()`: Устанавливает соединение с базой данных PostgreSQL
- `disconnect()`: Закрывает соединение с базой данных
- `get_companies_and_vacancies_count()`: Возвращает список компаний и количество вакансий у каждой компании
- `get_all_vacancies()`: Возвращает полную информацию о всех вакансиях и связанных компаниях
- `get_avg_salary()`: Возвращает среднюю зарплату по всем вакансиям
- `get_vacancies_with_higher_salary()`: Возвращает список вакансий с окладом выше среднего
- `get_vacancies_with_keyword(keyword)`: Возвращает список вакансий, соответствующих заданному ключевому слову
Все методы класса DBManager типизированы и имеют подробные docstrings для лучшего понимания их функциональности.
## Дополнительная информация
- Проект использует библиотеку psycopg2 для работы с PostgreSQL
- Для сборки данных используется API hh.ru
- Реализована обработка ошибок и логирование важных операций
## Замечания
- Рекомендуется использовать виртуальное окружение для управления зависимостями
- Перед использованием убедитесь, что у вас есть доступ к API hh.ru и PostgreSQL серверу
- Проект предоставляет удобный способ собирать и анализировать данные о вакансиях с hh.ru