Получить нужную таблицу с сайта

Есть ссылка на сайт с расписанием пар. На странице есть 3 элемента <select> : Институт (факультет), курс, группа. Как получить нужную таблицу через requests? Пробовал post и get, безуспешно.

import requests

data = {
    "table11": "597",
    "gc": "2",
}
res = requests.get("http://uiiit.donnuet.ru/raspisanie/index.php", data=data)

Может requests тут вообще не поможет, и лучше пробовать Selenium?


Ответы (1 шт):

Автор решения: br3t

Страничка /raspisanie/index.php сама по себе не содержит расписание, а подгружает его ajaxом. Если вам нужно получать расписание вашей группы, то запрос на до слать на /raspisanie/tablemain.php , как-то так:

data = {
    "id": "3125",
    "names": "БД-22-А"
}
res = requests.post("http://uiiit.donnuet.ru/raspisanie/tablemain.php", data=data)

id тут идентификатор вашей группы, names - название группы, но, судя по коду, оно, скорее всего, не используется. Id можно группы можно скопировать из option выпадающего списка групп.

Если вам нужно расписание для большого количества групп, то их id можно получить запросом на /raspisanie/group.php с параметрами:

  • id - идентификатор института, можно получить все id из выпадающего списка институтов
  • crs - номер нужного курса. Запрос вернёт html, который вам необходимо будет распарсить.
→ Ссылка