Программа предназначена для парсинга расписаний с портала dnevnik.ru и последующего вывода расписания на экран терминала (киоска).
Для парсинга данных необходима ссылка с taskId.
- Установить Python версии 3.10 или выше.
- Клонировать репозиторий git clone https://github.com/stepanskryabin/parsing-dnevnik-ru.git
- Перейти в директорию parsing-dnevnik-ru
- Настроить виртуальное окружение pipenv
- Установить модули: Flask, selenium, beautifulsoup4, lxml, sqlobject, loguru, python-crontab
- Создать файл настроек (скопировать example_config.ini > config.ini) и указать необходимые настройки
- Создать пустую БД
- Скопировать ссылку содержащую taskId в
TASK_ID_URL
(расположенный в разделе[DNEVNIK_RU]
config.ini). - Скопировать в корневую директорию исполняемый файл chromedriver (https://chromedriver.chromium.org/downloads).
- Запустить парсер
- Запустить веб-сервер flask
Для работы с проектом необходимо установить библиотеки которые он использует и настроить т.н. виртуальное рабочее окружение или virtualenv, для этого используется утилита Pipenv
Если не установлен pipenv, выполнить:
python -m pip install pipenv
Создать виртуальное окружение в директории с проектом:
pipenv shell
Установить все требуемые библиотеки из Pipfile:
pipenv install --ignore-pipfile
Создать файл config.ini (используя example_config.ini)
В секции [DNEVNIK_RU]
в параметре TASK_ID_URL
указать url который содержит id сессии авторизации через госуслуги,
например https://login.dnevnik.ru/esia/auth?taskId=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX®ionId=141
В секции [PARAMETERS]
указать глубину (в днях) на которую парсер должен загружать данные
pipenv run python ./manage.py --database create
Для удаления БД:
pipenv run python ./manage.py --database delete
Перед установкой ChromeDriver убедится что установлена свежая версия браузера Google Chrome или Chromium. После чего скачать архив с ChromeDriver тут в соответствии с той версией браузера которая установлена в системе. Распаковать исполняемый файл chromedriver в корень директории с кодом проекта.
pipenv run python ./parser.py
export FLASK_APP=server
export FLASK_ENV=development
flask run
gunicorn --bind 0.0.0.0:5000 server:app
$env:FLASK_APP = "server"
$env:FLASK_ENV = "development"
flask run