Я учусь в Москве с 2020 года. Нас сразу перевели на ЭЖД (электронный дневник города Москвы) или же МЭШ (Московский Электронный Журнал). Ну и в то время я начал учиться кодить (Python) и нашел статью про парсинг. Мне стало интересно и я начал работать с requests, beautifulsoup4 и другими библиотеками для парсинга HTML страницы. Ну и в мою голову пришла идея: «Написать парсер Дневника МЭШ»
Первый этап. Пробуем просто парсить HTML
Ну я начал пытаться сделать парсер HTML страницы. У сайта ЭЖД есть один нюанс — при каждом заходе на сайт, надо нажать кнопку «Войти». Ну переходишь на URL dnevnik.mos.ru, происходит 307 статус код и кидает на school.mos.ru (ну вот такая кривая система). И еще одна проблема для меня 11-ти летнего — сайт написан на ReactJS, что значило выполнение кода который находится в тэге . И Ваня пытался делать timeout (чтобы страница успела «загрузится»). Без успешно.
Второй этап. Selenium и бан в МЭШ
К тому времени я уже познакомился с Selenium и думал написать библиотеку на нем. Продумал все пути, как я буду делать. И настал момент. Моя программа на Selenium заходит в МЭШ. Я был рад первые 2 дня. Потом меня выкинуло из МЭШ (после перезагрузки телефона, немного кринж система) и я попытался зайти.
Ввожу пароль, неверно. Ввожу еще раз пароль и система говорит мне:
В качестве безопасности мы поменяли вам пароль.
Это было жестко, ведь я не мог его поменять (тогда аккаунт был полностью привязан к родителям), поэтому я обратился к маме. Долбанное приложение МЭШ. Форма для смены пароля была неверной, и на половину 6 класса я остался без Дневника. Восстановил я его только в начале 7 класс (МФЦ, техподдержка и тд).
Третий этап. Написание библиотеки на базе их API
Как я библиотеку для сервиса «Яндекс.Музыка» писал
И понял как сниффить трафик с компа. Но так как доступа к МЭШ не было, я подзабил на писал легкие Pet-проекты на FastAPI (так я и понял как работают API). Как только получил доступ к Дневнику МЭШ, я начал анализировать весь входящий и исходящий трафик dnevnik.mos.ru . Сидел я где-то дня 3 и потом
Я нашел основной URL API. Я был очень рад и сидел 2 недели с Postman и Burpsuite. Пришел день X. Я сел и за один вечер написал первый набросок библиотеки dnevniklib (версии 0.1.0). Все работало через зад одно место и я ее постоянно дописывал. Но сама библиотека была рабочей, ей можно было пользоваться. Она состояла из 4 классов:
- School (данные школы)
- Marks (данные оценок)
- User (данные юзера)
- Homeworks (данные ДЗ)
Она работала вполне нормально, только токен получать было впадлу иногда. Ну все работало отлично
Интересный момент. Авторизация
Для авторизации в МЭШ надо было получить дофига токенов сессии, что было сложно сделать. Поэтому на первой версии README.md состояла из инструкции как получить Auth токен (по cookies). Мда. Вспоминаю, написал отдельный проект на Selenium для получения токена.
Он был в виде странички на HTML (на сервере был Flask и Selenium) который заходил, вводил данные юзера и из кукисов доставал auth_token . Было весело, ведь у меня даже получались какие-то проекты на ней. Я был счастлив.
Версия 0.8. Поменяла все
Стало мне как-то скучновато. Решил написать класс UserToken для авторизации юзера. Была авто конфигурация ( UserToken(name=».», password=».», browser=»chrome»).configure() ) JSON файл с названием dnevnik.json хранил в себе такую инфу:
И тут как вы поняли, задействован Selenium. Но автоконфигурация происходила по принципу:
1. распознание ОС (WIN, Linux, Darwin(MacOS) )
2. Человек пишет название браузера (chrome, firefox)
3. Файл скачивается и разархивируется и корень проекта
Так и работал конфиг. Это работало довольно хорошо, и работает до сих пор. Но в последнее время я не использую ее, ведь идей нет. Все реализовано.
Один из проектов. DnevnikMOSBot в Telegram
Я его писал наверно в 20-ых числах декабря 2022 года. Каникулы и скука. Сел, написал и радостный.
Конец
Спасибо за чтение моей статьи! В скором времени я собираюсь переписать библиотеку и сделать быструю авторизацию
- https://xd1rty.t.me Мой телеграм (для связи)
- https://github.com/xD1rty Мой GitHub
- https://github.com/xD1rty/dnevniklib Сама библиотека
Источник: habr.com
Использование сервиса LearningApps.org для создания приложений в библиотеке МЭШ.
опыты и эксперименты
Использование сервиса LearningApps.org для создания приложений в библиотеке МЭШ.
Библиотека МЭШ — это информационно-образовательная среда, включающая в себя возможности работы с разными образовательными материалами, которые были созданы учителями, авторами контента, а также департаментом информационных технологий.
Используя Библиотеку МЭШ с разными образовательными материалами, учитель сможет сделать свои уроки более интерактивными и интересными, что вовлечет учеников в активную работу на уроке.
Существуют разные мнения по поводу использования библиотеки МЭШ, создания в ней своих сценариев, приложений. Я начала использовать материалы и создавать свои с прошлого года. Сначала, безусловно, возникали трудности. Но я прошла обучение и научилась не только ,пользоваться имеющимися в библиотеке МЭШ материалами, но и создавать свои.
Одним из сервисов, который помогает на данный момент мне в создании приложений это — LearningApps.org. Сервис довольно прост для самостоятельного освоения. Имеется огромная коллекция готовых упражнений, которые классифицированы по различным предметам.
Можно познакомиться с приложениями, отсортировав их, например, по оценке пользователей, сначала вам покажутся те упражнения, которые получили более высокую оценку. Если вы зарегистрируетесь на сайте, то можете создавать и свои упражнения, подобные имеющимся. Для этого под каждым упражнением есть кнопка «Создать подобное приложение». Все созданные вами приложения, а также упражнения, выбранные вами из готовых сохраняются в личном кабинете (кнопка «Мои приложения»).
Наилучшим вариантом использования таких упражнений на уроке является наличие компьютеров у детей или интерактивной доски (приставки) в классе. Но у меня, к примеру, нет интерактивной доски. В таком случае, самый бюджетный вариант — беспроводная мышь. Для выполнения упражнения мышь помещается на первую парту. Ученики выходят, работают с мышкой и садятся на свои места. Еще хорошо, если есть жесткий пластиковый «коврик» для мышки
Работа в данном сервисе очень проста.
LearningApps.org позволяет удобно и легко создавать электронные интерактивные упражнения. Широта возможностей, удобство навигации, простота в использовании. При желании любой учитель, имеющий самые минимальные навыки работы с ИКТ, может создать свой ресурс – небольшое упражнение для объяснения нового материала, для закрепления, тренинга, контроля. Плюсами данного сервиса является:
- бесплатный;
- дружелюбный русскоязычный интерфейс;
- быстрота создания интерактива;
- моментальная проверка правильности выполнения задания;
- возможность встраивания задания на html-страницу;
- многие шаблоны поддерживают работу с картинками, звуком и видео;
- содержит большую коллекцию уже созданных другими учителями упражнений;
- возможен поиск упражнений по категориям (по предметам);
- постоянно развивается;
- возможность обмена интерактивными заданиям.
Сегодня я вас хочу вам продемонстрировать создание одного из приложений в данном сервисе, и в дальнейшем его использование в библиотеке МЭШ.
При выполнении интерактивных заданий у учащихся повышается восприятие и запоминание информации, увеличивается результативность работы памяти, более интенсивно развиваются такие интеллектуальные и эмоциональные свойства личности, как – устойчивость внимания, умение его распределять; способность анализировать, классифицировать. Мои учащиеся с удовольствием работают с сервисом LearningApps, выполняют практически все задания, добиваются полного их выполнения.
Источник: nsportal.ru
Как создать приложение для МЭШ на LearningApps и пережить модерацию материала
Если вы представляете себе, к чему стремитесь, создать приложение будет очень легко. Мне нужен был материал для работы на уроках или дома.
На сегодняшнем прямом эфире мы создавали такое приложение. Ссылка на него в МЭШ: https://uchebnik.mos.ru/material/app/211827 .
2. Подготовка
Так как я готовлю серию приложений, то я сразу создала иллюстрации . Потому что без интересной картинки приложение не будет привлекать внимание.
Котики украшают всё на свете!
У меня есть заготовки со всеми фразами, которые понадобятся при создании приложения. Потому что держать их в голове невозможно. С ролью такой вот подсказки отлично справляется обычный текстовый файл.
Это план сегодняшнего прямого эфира.
Чтобы не путаться в этапах создания и ничего не пропустить, можно пользоваться чек-листами .
Это мой чек-лист.
Также обязательно прорабатываем сам материал, КЭС, уровень образования, фон . Иначе на создание приложения можно потратить вечность.
3. Создаём приложение на сайте LearningApps и переносим его в МЭШ
Сегодня во время прямого эфира я за 25 минут успела показать все этапы создания приложения, загрузку его в МЭШ и отправление на модерацию.
Смотреть с 24:14.
4. Как поступить, если пришёл отказ
Или искать по ФИО школу, где работает модератор (там может быть указана и почта), или обращаться к старшему методисту по своему предмету. Контакты можно найти на сайте ГМЦ .
Подписывайтесь, чтобы не пропустить уведомление о начале прямого эфира. Мой канал на Youtube . Мой канал в Telegram .
Источник: dzen.ru