Как спарсить сайт на python?

Тема может показаться заезженной, но искренне клянусь, что перелазил гугл в поисках ответа, но не нашёл

Сразу покажу свой таксебекод:
import lxml.html
import requests

page = requests.get('https://rasp.nsuem.ru/group/2722').text
parser = lxml.html.fromstring(page)
subjectName = parser.cssselect('.mainScheduleInfo')
subjectTime = parser.cssselect('.time')
subjectDay = parser.cssselect('.day-header')
subjectRoom = parser.cssselect('.mainScheduleInfo a')

templateDay = 'День: {}'
for i in zip(subjectDay):
    print(templateDay.format(*[j.text for j in i]))

templateTime = 'Время: {}'
for i in zip(subjectTime):
    print(templateTime.format(*[j.text for j in i]))

templateName = 'Предмет: {}'
for i in zip(subjectName):
    print(templateName.format(*[j.text for j in i]))

templateRoom = 'Аудитория: {}'
for i in zip(subjectRoom):
    print(templateRoom.format(*[j.text for j in i]))


ссылка откуда беру там есть, но скину на всякий случай ещё раз: https://rasp.nsuem.ru/group/2722
в общем этот код по понятным причинам выводит мне такую конструкцию:

День: пн
День: вт
День: ср
День: чт
День: пт
День: сб
Время: 11:25
Время: 13:20
Время: 15:05
Время: 16:50
Время: 11:25
Время: 13:20
Время: 15:05
Время: 16:50
Время: 18:30
Время: 15:05
Время: 16:50
Время: 8:00
Время: 9:40
Время: 15:05
Время: 16:50
Время: 18:30
Время: 13:20
Время: 15:05
Время: 16:50
Предмет: Разработка и администр. ПО для Web,
Предмет: Разработка и администр. ПО для Web,
Предмет: Разработка ПО для мобильных устройс,
Предмет: Разработка ПО для мобильных устройс,
Предмет: Разработка ПО для мобильных устройс,
Предмет: Разработка ПО для мобильных устройс,
Предмет: Разработка ПО для мобильных устройс,
Предмет: Разработка ПО для мобильных устройс,
Предмет: Проектирование Web-приложений,
Предмет: Проектирование Web-приложений,
Предмет: Проектирование Web-приложений,
Предмет: Проектирование Web-приложений,
Предмет: Проектирование Web-приложений,
Предмет: Обеспечение безопасности Web-прилож,
Предмет: Обеспечение безопасности Web-прилож,
Предмет: Обеспечение безопасности Web-прилож,
Предмет: Мультимедиа технологии,
Предмет: Мультимедиа технологии,
Предмет: Мультимедиа технологии,
Предмет: Мультимедиа технологии,
Предмет: Разработка и администр. ПО для Web,
Предмет: Проектирование Web-приложений,
Предмет: Разработка и администр. ПО для Web,
Предмет: Проектирование Web-приложений,
Предмет: Разработка и администр. ПО для Web,
Предмет: Разработка и администр. ПО для Web,
Предмет: Разработка и администр. ПО для Web,
Предмет: Разработка ПО для мобильных устройс,
Аудитория: 5-716
Аудитория: 5-721
Аудитория: 5-716
Аудитория: 5-721
Аудитория: неизв.
Аудитория: 5-721
Аудитория: неизв.
Аудитория: 5-721
Аудитория: 5-722
Аудитория: 5-722
Аудитория: 5-722
Аудитория: 5-722
Аудитория: неизв.
Аудитория: 5-612
Аудитория: 5-612
Аудитория: 5-612
Аудитория: 5-707
Аудитория: 5-707
Аудитория: 5-713
Аудитория: 5-713
Аудитория: 5-712
Аудитория: 5-722
Аудитория: 5-712
Аудитория: 5-722
Аудитория: неизв.
Аудитория: 5-712
Аудитория: 5-713
Аудитория: 5-712


Мне нужно это всё объединить, я как бы понимаю, что я могу их все сложить, сделать правильный template и они сложатся, но структура расписания не сохранится, как то можно реализовать это таким образом чтобы день недели, аудитория и название предмета были в том же порядке, что и на сайте?
  • Вопрос задан
  • 1171 просмотр
Решения вопроса 2
sgjurano
@sgjurano
Разработчик
Попробуй построчно разобрать таблицу "schedule_table", мне кажется так будет проще всего
(итерируйся по тэгам "tr").

Вот пример stackoverflow.com/a/9920703
Ответ написан
dimonchik2013
@dimonchik2013
non progredi est regredi
вот этим
class="info centered day-header"
нарезаешь блоки

потом пробегаешь внутри каждого блока, вот этим
div class="time"

это точно делается xpath, думаю, селекторами тоже
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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