Тут всё просто, у сайта твоего университета есть api. DsD, тебе скинул ссылку на него. Тебе не нужно парсить html страницы твоего университета, тебе ведь нужно конкретно расписание, если ты зайдешь на страницу с расписанием, и глянешь в раздел сеть, то увидишь, что сайт подгружает расписание с помощью api


А если ты захочешь спарсить только html, то ты его не получишь, пока не прогрузишь весь JavaScript код (там даже пишут это):

Поэтому тебе стоит отправлять запрос на ссылку с api расписанием, его боятся не надо, это обычный словарь, которой облегчает нам жизнь раз так в 100, нежели мы парсили бы это всё с html. Как же получить этот словарь? (покажу на примере requests)
import requests
import fake_useragent
url = 'https://lk2.stgau.ru/api/Rasp?idGroup=20189&sdate=2023-10-20' # Ссылка на api расписания
headers = {
'User-Agent': fake_useragent.UserAgent().random
}
response = requests.get(url=url, headers=headers).json() # Получаем ответ и преобразуем его в словарь функцией json()
rasp = response['data']['rasp']
print(f"День: Понедельник")
print("Уроки")
for lesson in rasp:
if lesson['деньНедели'] == 1:
print(lesson['дисциплина'])
