- Язык: Python
- Тип: нативное кроссплатформенное консольное приложение
Написан по просьбе друга для упрощения записи к врачу в центре «Раухфуса» в Санкт-Петербурге. Циклично проверяет доступность номерков к определенном врачу, т.к. номерков зачастую долгое время нет, и застать их появление бывает проблематично. При появлении номерков уведомляет на e-mail.
Для доступа к иформации на сайте центра необходимо иметь учетную запись в виде ФИО пациента и его даты рождения!
Системные требования
Скрипт писался и тестировался под Linux, но при работе в других ОС не должно быть проблем.
Подготовка окружения
-
Установите последнюю стабильную версию Google Chrome с официального сайта (либо любым другим доступным способом в зависимости от ОС).
-
Найдите версию установленного браузера, пройдя по ссылке
chrome://settings/help
. На странице отобразится версия браузера, что-то вродеВерсия 91.0.4472.114 (Официальная сборка), (x86_64)
. -
Установите chromedriver с официального сайта, выбрав нужную версию в зависимости от версии браузера, определенной выше. chromedriver представляет собой обычное приложение в виде простого бинарника в Linux/macOS или
*.exe
файла в Windows. Положите его в любое удобное место и запомните путь. Для удобства это может быть корень домашнего каталога пользователя. -
Установите python 3 и pip3.
-
Установите необходимые для работы зависимости командой
pip3 install bs4 selenium
. -
Обновите зависимости командой
pip3 install --upgrade requests
.
Установка скрипта
Заберите последнюю версию скрипта с GitHub (либо из релизов, либо прямо из репозитория). Скрипт состоит из трёх файлов, которые должны лежать рядом в отдельном каталоге. Правильным путем будет просто оставить каталог rauhfus_checker
как он есть.
Откройте любым текстовым редактором файл main.py
и найдите строку с настройками пути к chromedriver:
browser = webdriver.Chrome(options=chrome_options, executable_path="/home/zhbert/chromedriver")
Замените путь к драйверу на тот, куда вы положили свой скачанный бинарник.
Обратите внимание! Если у вас Windows, не забудьте заменить имя бинарника на правильное:
chromedriver.exe
.
Настройка параметров
При первом запуске скрипт создаст каталог с файлом настроек в домашнем каталоге пользователя:
- Для Linux это
/home/user/.rauhrus_checker/rauhfus_checker.conf
; - Для Windows в зависимости от версии путь может отличаться, но обычно ссылка на «Домашний каталог» есть в проводнике;
- Для macOS это
/Users/user/.rauhrus_checker/rauhfus_checker.conf
.
Содержимое файла представляет собой стандартные настройки, разбитые по категорям:
[CHILD]
surname = ФАМИЛИЯ ПАЦИЕНТА
name = ИМЯ ПАЦИЕНТА
middle_name = ОТЧЕСТВО ПАЦИЕНТА
birthday = ДД.ММ.ГГГГ
[EMAIL]
host = smtp.gmail.com
port = 587
username = your@email.com
password = PASSWORD
address = email КОМУ
[DOCTOR]
type = Невролог
[SYSTEM]
interval = 3
Важные особенности:
- В секции
CHILD
нужно обратить внимание на дату рождения. Если в месяце одна цифра, например, сентябрь, как в примере, то указывается не09
, а именно9
, это обусловлено особенностями самого сайта центра; - Скрипт работает ТОЛЬКО С GMAIL в качестве сервера отправки почты;
- В секции
DOCTOR
нужно указать врача, к которому проверяются номерки. Доступны следующие варианты:Аллерголог-иммунолог
Гастроэнтеролог
Детский кардиолог
Детский хирург
Детский эндокринолог
Невролог
Нейрохирург
Нефролог
Оториноларинголог
Офтальмолог
Педиатр
Пульмонолог
Травматолог-ортопед
Функциональная диагностика
Челюстно-лицевой хирург
interval
— интервал проверки в часах
Подготовка почтового ящика
При успешном обнаружении свободных номерков скрипт отправит на электронную почту уведомление. Для работы доступна только почта Gmail. Перед работой необходимо в настройках почты включить возможность входа для «непроверенных устройств», сделать это можно тут. Для этого необходимо пройти в раздел «Если в вашем аккаунте закрыт доступ для небезопасных приложений», выбрать там ссылку «открыть его» и переключить появившийся ползунок в положение «Небезопасные приложения разрешены»
Запуск скрипта
Запустите скрипт командой python3 main.py
. Если все настроено как нужно, откроется управляемое скриптом окно Chrome (вверху будет уведомление, что браузер управляется сторонним ПО), и пойдет процесс проверки, который можно будет наблюдать. Проверяться будет в соответствии с заданным в настройках интервалом.