Как стать автором
Обновить

Как я библиотеку для Дневника МЭШ писал

Ну-сс, приступим. Кто я такой?

  • Ученик 7-ого класса общеобразовательной школы

  • Backend программист

  • С 10 лет начал программировать на Python

  • С 11 лет писал ботов в телеграмме

  • С 12 лет начал разбираться что такое Linux, *nix, git, bash и так далее

Как зародилась идея?

В 12 лет, когда начал разбираться что такое парсинг, захотелось написать программу для автоматического сбора оценок с ЭЖД. Я сел и начал разбираться. ДОЛГО разбираться.

А потом нашел информацию, что открытое API они закрыли в 2018 году, ведь приложение "Дневничок" конкурировало с официальным приложением.

Я начал пробовать парсить дневник через модуль requests и beautifulsoup4, но так как приложение React-овое, оно долго прогружалось. Пришлось через ж̶о̶п̶у̶ Selenium. Не получилось. А потом я потерял пароль и проект остановился...

Через полгода...

Однажды, я наткнулся на статью с заголовком:

"Как я библиотеку для сервиса Яндекс.Музыка писал" от MarshalX

И меня осенило... Я НАКОНЕЦ ПОНЯЛ,? КАК РАБОТАЮТ ПРИЛОЖЕНИЯ!!!

Мне помог учитель CTF моего друга с выбором сниффера, ему отдельное спасибо!

Начало ада

Я остановился на BurpSuite, ведь у него большой функционал (но 90% мне не было нужно). После сбора запросов, я понял, что сайт очень корявый. ПРЯМ ОЧЕНЬ! Ведь вместо 1 Header-а "Authorization", он запрашивает еще "Auth-Token", но принимает разные значения.

Нужно всего две ссылки чтобы получить данные:

  1. https://dnevnik.mos.ru/mobile/api/profile - Для получения данных ученика, родителей, школы и так далее

  2. https://dnevnik.mos.ru/mobile/api/schredule?student_id="ID студента"&date="дата" - для получения д\з, уроков и оценок в определенный день

Написание самой библиотеки

Саму библиотеку я писал часа 2. Она состоит из пяти классов

Дерево главной папки
Дерево главной папки

Каждый файл отвечает только за одно дело.

Пока!

Да, статья вышла короткой, библиотека сырая, но я и то и то буду дополнять

https://github.com/dirtyhornet277/dnevniklib кто может, поддержите, чем может!

Спасибо!

Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.