Спарсить: Расписание. Необходимо брать файл pdf по адресу: https://cs.msu.ru/sites/cmc/files/docs/3_kurs_osen_2023_14.pdf и обрабатывать на языке python, создавая небольшую базу данных: a. База данных, должна форматироваться на базе уникального ключа занятий, который будет выступать связующим звеном групп, преподавателей, дней, времени, предмета, аудиторий. То есть по уникальному ключу занятия можно восстановить предмет занятия, аудиторию/аудитории в которой/которых проходит это занятие, день в который проходит это занятие, преподаватель/преподаватели, который/которые ведут это занятие, группа/группы у которой/которых это занятие. Например, для занятия определяемого: ‘day’: ‘cреда’ ‘time’: ‘10:30 12:05’ ‘lesson’: ‘Введение в сети ЭВМ’, ‘auditorium’: [‘П-14’, ‘506’, ‘523’, ‘685’] 'full name': [ ‘grade’: ‘None’ ‘Surn’: ‘Антоненко’ ‘Name’: ‘В.’ ‘Patr’: ‘А.’, ‘grade’: ‘None’ ‘Surn’: ‘Волканов’ ‘Name’: ‘Д.’ ‘Patr’: ‘Ю.’, … ] 'group': ['320', '321', '322', '323', '324', '325', '327', '328'] ‘key”: 203 В базу данных будет внесено: 1. В основной словарь Keys_base будет добавлен элемент: ‘203’: ‘day’: ‘среда’ ‘time’: ‘10:30 12:05’ ‘lesson’: ‘введение в сети эвм’ ‘auditorium’: [‘П-14’, ‘506’, ‘523’, ‘685’] 'surname': [ ‘Антоненко’, ‘Волканов’, ‘Бабернов’, ‘Пашков’, ‘Степанов’, ‘Рязанов’, ‘Гаркавый’, ‘Никифоров’] 'group': ['320', '321', '322', '323', '324', '325', '327', '328'] 2. А в словарь Lessons_base будет создан или расширен элемент: ‘введение в сети эвм’: [ … , ‘203’] 3. В словарь Surname_base будет создан или расширен, например, элемент: ‘Бабернов’: ‘full name’: ‘grade’: ‘None’ ‘Name’: ‘В.’ ‘Patr’: ‘В.’ ‘keys’: […, ‘203’] В случае если будет обнаружена более расширенная информация о «Бабернова» ученая степень ‘grade’, полное имя или полное отчество, то этой информацией можно заменить данные из ‘full name’. 4. В словарь Day_base будет создан или расширен элемент: ‘среда’: […, ‘203’] 5. В словарь Time_base будет создан или расширен элемент: ‘10:30 12:05’: […, ‘203’] 6. В словарь Auditorium_base будет создан или расширен, например, элемент: ‘П-14’: […, ‘203’] 7. В словарь Group_base будет создан или расширен, например, элемент: '320': […, '203',] b. Для выделения предмета занятия, аудиторию/аудитории в которой/которых проходит это занятие, преподаватель/преподаватели, который/которые ведут это занятие из строки может функция analyze_text_block_from_schedule из файла func.py. Она принимает строку, в которой содержатся некоторые из этих данных и возвращает словарь, например для: «Введение в сети ЭВМ П-14, 506, 523, 685 Антоненко В.А., Волканов Д.Ю., Бабернов В.В., Пашков В.Н., Степанов Е.П., Рязанов А.М., Никифоров Н.И.», будет выдано: { 'lesson': 'Введение в сети ЭВМ', 'auditorium': ['П-14', '506', '523', '685'], 'full name': [ { 'grade': None, 'Surn': 'Антоненко', 'Name': 'В.', 'Patr': 'А.' }, { 'grade': None, 'Surn': 'Волканов', 'Name': 'Д.', 'Patr': 'Ю.' }, … ]} Вспомогательные файлы с функцией analyze_text_block_from_schedule и примером бд могу скинуть в телеграмме.