- PVSM.RU - https://www.pvsm.ru -
Когда я начал свой путь в парсинге, мне в голову сразу пришла идея написать клиент для удобного взаимодействия со школьным дневником. В последствии я решил оформить его в виде Telegram-бота.
Основные проблемы, возникающие во время использования оригинального электронного дневника, которые я постараюсь решить:
Проблема |
Соотношение, % |
Падение серверов при нагрузке (конец четвертей) |
45,5 |
Отсутствие уведомлений |
20,5 |
Сайт не адаптирован для мобильных устройств |
20,5 |
Дизайн мобильного приложения |
18,2 |
Отсутствие кастомизации интерфейса приложения/сайта (темная тема) |
13,6 |
Защита данных/конфиденциальность |
11,4 |
В качестве базы данных для бота на первое время был выбран простой JSON файл, это решение обусловлено следующими параметрами:
Простота
Скорость и удобство разработки
Наглядность
Больше опыта работы
Однако, в будущем планируется переход на обычную базу данных (sqlite3 или PostgreSQL).
Спарсить сам дневник оказалось достаточно просто: для успешного получения ответа не нужна даже подмена заголовков запроса (headers), нужна только авторизация (cookie).
На данный момент я переписал чужой проект, по работе с API дневника (barsapi), перевёл его на aiohttp, значительно ускорил скорость работы. В скором времени планирую перевести бота на использование этой библиотеки.
Бот написан на aiogram, т. к. у них понятная документация.
Официально уведомления как-будто бы есть... Но на деле (по крайней мере в моём регионе) они не функционируют.
Уведомления в боте реализованы "в лоб": раз в определенный промежуток времени бот запрашивает оценки с сервера, сравнивает их с оценками записанными в базу данных при предыдущем запросе. И в случае обнаружения изменений отправляет их пользователю в телеграмме.
Пройдёмся по проблемам, указанным в начале:
Падение серверов при нагрузке (конец четвертей)
Интересно то, что во время большой нагрузки за частую не получается именно авторизоваться. В свою очередь API остаётся в прежнем состоянии и бот будет выдавать информацию, когда сайт и приложение не смогут.
Но это не принесёт большого смысла, т. к. учителя тоже не смогут войти и проставить оценки(
Отсутствие уведомлений
Решено в полной мере.
Сайт не адаптирован для мобильных устройств
Информация в боте отлично отображается как на компьютере, так и на телефоне.
Дизайн мобильного приложения и отсутствие кастомизации интерфейса приложения/сайта (темная тема)
Пользователь сам в праве решить каким интерфейсом ему пользоваться, он может настроить тему в Telegram под себя или выбрать из большого количества готовых.
Защита данных/конфиденциальность
Нельзя отследить куда уходят запросы (как в браузере через вкладку параметры для разработчиков) => перечень возможных атак существенно снижается;
Подведу небольшой итог, по проекту:
На данный момент в боте 7 пользователей(
Поднят с колен пакет для взаимодействия с API (barsapi)
Написан пакет для взаимодействия с API разговоров о важном (для раздела о классных часах), conversations-about-important-api
В репозитории на GitHub 3 звезды
Проект является некоммерческим (работает не ради дохода, сделан ради пользователей), вот ссылки:
GitHub проекта - pars-diary [1]
Бот в Telegram - pars_diary_bot [2]
Благодарю, за прочтение :-)
Автор: imalostshe
Источник [3]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/boty/415095
Ссылки в тексте:
[1] pars-diary: https://github.com/iamlostshe/pars-diary
[2] pars_diary_bot: https://t.me/pars_diary_bot
[3] Источник: https://habr.com/ru/articles/895486/?utm_source=habrahabr&utm_medium=rss&utm_campaign=895486
Нажмите здесь для печати.