@kruta
Студент

Как get/post запросом получить динамически подгружаемую информацию со страницы?

Есть страница сайта, на которой информация подгружается динамически: вписываешь строку, отображается информация. Если просто отправить get запрос на эту страницу, ничего не выйдет. Так вот, задача в том, чтобы понять, как отправить нужный запрос на сервер, чтобы тот ответил полной информацией.
Если непонятна формулировка, то нужно на странице urfu.ru/ru/students/study/schedule/#student/ после ввода номера группы качнуть это самое расписание
  • Вопрос задан
  • 244 просмотра
Решения вопроса 1
Заходишь в инструменты разработчика (f12) -> вкладка network.

Когда вводишь номер группы и получаешь результат, во вкладке появляется запрос, в котором есть расписание.
Запрос выглядит вот так:
https://urfu.ru/api/schedule/groups/lessons/981082/20200409/

Если сейчас посмотреть результат, то это расписание группы с номером 373205. Но как видно в запросе, данный номер не фигурирует. В нем есть какие-то два числа 981082 и 20200409. Осталось разобраться что это за числа.

Опять смотрим вкладку network и видим, что при вводе в поле "номер группы" сайт отправляет запрос на сервер вида:
https://urfu.ru/api/schedule/groups/suggest/?query=373205

В поле query как раз указан номер нужной группы. В ответ на это, сервер отдает такой json объект:
{"suggestions": [{"value": "373205", "data": 981082}]}

В поле value указан номер группы, а вот в поле data указано как раз одно из чисел в первом запросе (981082). Назовем это число id группы.

Теперь осталось понять, что за число 20200409. Но для этого вкладка network уже не нужна, ведь если приглядеться, то станет понятно, что это просто дата - 2020 04 09.

И так, для того что бы получить расписание для группы с номером NUMBER нужно сделать следующие шаги:
  • Сделать запрос для получение id группы:
    https://urfu.ru/api/schedule/groups/suggest/?query=NUMBER


  • Сделать второй запрос уже для получения расписания:
    https://urfu.ru/api/schedule/groups/lessons/ID/ТЕКУЩАЯ_ДАТА/


Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы