Skip to content

Repository files navigation

Язык / Language: Русский · English

Vacancy Parser Pro

Vacancy Parser Pro — desktop-программа на Python и Tkinter для поиска вакансий сразу в нескольких источниках. Приложение собирает результаты, применяет локальные фильтры, удаляет дубликаты, показывает статистику по источникам и экспортирует найденные вакансии в Excel.

Проект построен вокруг независимых адаптеров источников: ошибка или изменение одного сайта не должно останавливать весь поиск. Для диагностики сетевых проблем и изменений разметки программа создаёт структурированные логи.

Что демонстрирует проект

  • архитектуру независимых адаптеров для внешних источников;
  • fault isolation: сбой одного сайта не останавливает весь агрегатор;
  • сетевой парсинг, нормализацию и объединение данных из разных источников;
  • локальную фильтрацию, дедупликацию и экспорт результатов в Excel;
  • диагностику проблем внешних сайтов с привязкой к конкретной поисковой сессии;
  • regression-тесты парсеров без необходимости обращаться к реальным сайтам;
  • осторожную работу с TLS/сетевыми исключениями без глобального ослабления безопасности.

Возможности

  • поиск вакансий сразу по нескольким источникам;
  • профили поиска для повторяющихся запросов;
  • фильтры по профессии, городу, зарплате, опыту, формату работы и периоду публикации;
  • мягкий и строгий режимы фильтра зарплаты;
  • удаление дублей между источниками;
  • открытие вакансии в браузере;
  • экспорт результатов в Excel;
  • статистика по каждому источнику;
  • изоляция ошибок отдельных парсеров;
  • структурированные диагностические сессии;
  • регрессионные тесты парсеров без доступа к интернету;
  • сборка Windows EXE.

Поддерживаемые источники

  • Rabota.by
  • HH.ru
  • Praca.by
  • Belmeta
  • GSZ.gov.by

Внешние сайты могут менять HTML, API и ограничения доступа, поэтому состояние отдельных адаптеров со временем может меняться.

Установка

  1. Установите актуальную версию Python 3 для Windows.
  2. Скачайте проект через Code → Download ZIP либо Git:
git clone https://github.com/zeter1/Vacancy-Parser-Pro.git
cd Vacancy-Parser-Pro
  1. Создайте виртуальное окружение и установите зависимости:
py -3 -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -r requirements.txt

Запуск

python vacancy_parser.py

или двойным щелчком по:

run.bat

Как пользоваться

  1. Запустите программу.
  2. Укажите профессию или ключевые слова.
  3. При необходимости выберите город, минимальный доход, опыт, формат работы и период публикации.
  4. Выберите режим фильтрации зарплаты.
  5. Запустите поиск.
  6. Дождитесь обработки источников — статистика покажет, какие сайты успешно отработали и сколько вакансий найдено.
  7. Откройте интересующую вакансию в браузере или экспортируйте результаты в Excel.
  8. Для часто используемых параметров сохраните профиль поиска.

Если один из источников перестал работать, сначала проверьте папку Логи проблем: там сохраняется подробная диагностика конкретной поисковой сессии.

Фильтрация зарплаты

Параметр Мин. доход работает вместе с режимом Фильтр зарплаты:

  • Не фильтровать — вакансии не исключаются по зарплате.
  • Мягкий — вакансии без указанной зарплаты остаются; диапазон может достигать заданного минимума.
  • Строгий — зарплата должна быть указана, а гарантированная нижняя граница должна быть не меньше выбранного минимума.

Структура проекта

  • vacancy_parser.py — точка входа.
  • vacancy_gui.py — GUI, профили, состояние, статистика и Excel-экспорт.
  • job_scraper.py — сетевые запросы, парсинг, фильтрация и дедупликация.
  • problem_logging.py — структурированная диагностика.
  • tests/ — регрессионные тесты.
  • parser_config.example.json — пример конфигурации.
  • build_exe.bat — сборка EXE.

Диагностика

Каждый поиск создаёт отдельную сессию в Логи проблем/. В ней сохраняются параметры запроса, статистика, HTTP-ошибки, предупреждения, причины фильтрации и ограниченные примеры результатов.

Секретные данные, включая OAuth-токены, намеренно не записываются в диагностические файлы.

Проверка и тесты

python -m compileall -q .
python -m unittest discover -s tests -v

CI дополнительно импортирует основные модули приложения на Windows. Тесты основной логики парсеров рассчитаны на работу без сети; реальная доступность сайтов остаётся внешней runtime-зависимостью.

Поддержка и безопасность

  • SUPPORT.md — какие данные полезно приложить к bug report;
  • GitHub Issues — обычные ошибки;
  • SECURITY.md — сообщения о потенциальных уязвимостях.

Сборка EXE

build_exe.bat

Готовая сборка появляется в каталоге dist/.

Лицензия

Открытая лицензия пока не выбрана. Исходный код доступен для просмотра как часть портфолио и для ознакомления с реализацией.

About

Агрегатор вакансий для Windows, разработанный на Python и Tkinter; поддерживает поиск по нескольким источникам, фильтрацию, удаление дубликатов, экспорт в Excel и диагностику.

Topics

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages