Язык / Language: Русский · English
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 и ограничения доступа, поэтому состояние отдельных адаптеров со временем может меняться.
- Установите актуальную версию Python 3 для Windows.
- Скачайте проект через Code → Download ZIP либо Git:
git clone https://github.com/zeter1/Vacancy-Parser-Pro.git
cd Vacancy-Parser-Pro- Создайте виртуальное окружение и установите зависимости:
py -3 -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -r requirements.txtpython vacancy_parser.pyили двойным щелчком по:
run.bat
- Запустите программу.
- Укажите профессию или ключевые слова.
- При необходимости выберите город, минимальный доход, опыт, формат работы и период публикации.
- Выберите режим фильтрации зарплаты.
- Запустите поиск.
- Дождитесь обработки источников — статистика покажет, какие сайты успешно отработали и сколько вакансий найдено.
- Откройте интересующую вакансию в браузере или экспортируйте результаты в Excel.
- Для часто используемых параметров сохраните профиль поиска.
Если один из источников перестал работать, сначала проверьте папку Логи проблем: там сохраняется подробная диагностика конкретной поисковой сессии.
Параметр Мин. доход работает вместе с режимом Фильтр зарплаты:
- Не фильтровать — вакансии не исключаются по зарплате.
- Мягкий — вакансии без указанной зарплаты остаются; диапазон может достигать заданного минимума.
- Строгий — зарплата должна быть указана, а гарантированная нижняя граница должна быть не меньше выбранного минимума.
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 -vCI дополнительно импортирует основные модули приложения на Windows. Тесты основной логики парсеров рассчитаны на работу без сети; реальная доступность сайтов остаётся внешней runtime-зависимостью.
SUPPORT.md— какие данные полезно приложить к bug report;- GitHub Issues — обычные ошибки;
SECURITY.md— сообщения о потенциальных уязвимостях.
build_exe.bat
Готовая сборка появляется в каталоге dist/.
Открытая лицензия пока не выбрана. Исходный код доступен для просмотра как часть портфолио и для ознакомления с реализацией.