NetSchoolAPI¶
NetSchoolAPI — это асинхронный АПИ-клиент для «Сетевого города». Он может получать расписание, оценки и домашнее задание.
Warning
NetSchoolAPI не поддерживает некоторые электронные дневники.
Как работает¶
«Сетевой город» обращается к внутреннему недокументированному АПИ; грубо говоря, сайт электронного дневника только отображает данные, которые оно возвращает. NetSchoolAPI использует это АПИ: получает сырые данные оценок, расписания и пр. и приводит их в вид, удобный для использования.
Что с этим делать¶
Это значит, что вы можете создать Вк- или Телеграм-бота, который будет напоминать о просроченных заданиях, показывать домашнее задание или отправлять прикрепленные файлы. И для этого не нужно заходить на сайт, выбирать школу и вводить логин и пароль!
Установка¶
Note
Для работы необходим Пайтон >=3.8
NetSchoolAPI устанавливается через стандартный пакетный менеджер pip
:
python -m pip install -U netschoolapi
Проверим, что библиотека установлена правильно:
python -m pip show netschoolapi
Если загрузка прошла успешно, будет выведена информация о библиотеке.
Минимально работающий проект¶
NetSchoolAPI установлен! Ниже — пример кода, который получает дневник и печатает его.
import asyncio
from netschoolapi import NetSchoolAPI
async def main():
# Создаём клиент. Через него мы будем обращаться
# к АПИ электронного дневника
ns = NetSchoolAPI('https://edu.admoblkaluga.ru:444/')
# Логинимся в "Сетевой город"
await ns.login(
'Аркадий Степанович Петроненко', # Логин
'||4R0Ль_йцУk3H', # Пароль
'МБОУ "СОШ "Технический лицей"', # Название школы
)
# Печатаем дневник на текущую неделю
# О полях дневника в "Справочнике"
print(await ns.diary())
# Выходим из сессии
# Если этого не делать, то при заходе на сайт
# будет появляться предупреждение о безопасности:
# "Под вашим логином работает кто-то другой..."
await ns.logout()
if __name__ == '__main__':
asyncio.run(main())
На следующей странице перечислены методы класса NetSchoolAPI
.