Rauhfus Checker — скрипт для проверки доступных номерков в центре «Раухфуса» в СПб | Zhbert’s Home
Zhbert's Home
Домашняя страничка Zhbert'а

Rauhfus Checker — скрипт для проверки доступных номерков в центре «Раухфуса» в СПб

  • Язык: Python
  • Тип: нативное кроссплатформенное консольное приложение

Написан по просьбе друга для упрощения записи к врачу в центре «Раухфуса» в Санкт-Петербурге. Циклично проверяет доступность номерков к определенном врачу, т.к. номерков зачастую долгое время нет, и застать их появление бывает проблематично. При появлении номерков уведомляет на e-mail.

Для доступа к иформации на сайте центра необходимо иметь учетную запись в виде ФИО пациента и его даты рождения!

Системные требования

Скрипт писался и тестировался под Linux, но при работе в других ОС не должно быть проблем.

Подготовка окружения

  1. Установите последнюю стабильную версию Google Chrome с официального сайта (либо любым другим доступным способом в зависимости от ОС).

  2. Найдите версию установленного браузера, пройдя по ссылке chrome://settings/help. На странице отобразится версия браузера, что-то вроде Версия 91.0.4472.114 (Официальная сборка), (x86_64).

  3. Установите chromedriver с официального сайта, выбрав нужную версию в зависимости от версии браузера, определенной выше. chromedriver представляет собой обычное приложение в виде простого бинарника в Linux/macOS или *.exe файла в Windows. Положите его в любое удобное место и запомните путь. Для удобства это может быть корень домашнего каталога пользователя.

  4. Установите python 3 и pip3.

  5. Установите необходимые для работы зависимости командой pip3 install bs4 selenium.

  6. Обновите зависимости командой 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 (вверху будет уведомление, что браузер управляется сторонним ПО), и пойдет процесс проверки, который можно будет наблюдать. Проверяться будет в соответствии с заданным в настройках интервалом.