Top.Mail.Ru
Ответы

Код на Python

Я хочу сделать парсинг страницы https://kingim7.ru/#/4/raspisanie/zamena.php

в ней есть таблица с расписанием, первые строки говорят о времени выставления расписания, текст с красным фоном говорит о том, каких учителей нет, а остальные строки говорят о классе и расписании на класс выше указанного

мне нужен код, который при обновлении расписания просто выводил такие параметры как - каких учителей нет, время выставления расписания и расписании на класс

По дате
По рейтингу
Аватар пользователя
Мыслитель
7мес

который при обновлении

О каком обновлении речь? Там страницы статичные, сайту 18 лет, а по виду как и Ленинграду.
Это только постоянные опросы сайта, скорее всего у него и API никакого нет - страница .php формируется налету прямо на сервере.

Такая задача потребует:

  • код запуска своего сервера для постоянного опроса

  • база-данных для сравнения с прошлым опросом и записи нового

  • web-интерфейс чтобы на это все можно было посмотреть


ЗЫ: И более чистая страница только с таблицей находится по адресу без решетки
https://kingim7.ru/4/raspisanie/zamena.php

Аватар пользователя
7мес

За бесплатно много хочешь.

Аватар пользователя
Профи
7мес
1234567891011121314151617181920212223242526272829303132333435363738394041424344
 import requests 
from bs4 import BeautifulSoup 
 
# URL страницы с расписанием 
url = "https://kingim7.ru/#/4/raspisanie/zamena.php" 
 
# Отправляем GET-запрос к странице 
response = requests.get(url) 
 
# Проверяем, успешен ли запрос 
if response.status_code == 200: 
    # Создаем объект BeautifulSoup 
    soup = BeautifulSoup(response.content, 'html.parser') 
 
    # Ищем время выставления расписания 
    time_section = soup.find('div', class_='td2') 
    if time_section: 
        time_text = time_section.get_text(strip=True) 
        print("Время выставления расписания:", time_text) 
 
    # Ищем информацию о недостающих учителях 
    missing_teachers = [] 
    for row in soup.find_all('tr'): 
        if 'style="background-color:red"' in str(row): 
            missing_teachers.append(row.get_text(strip=True)) 
 
    if missing_teachers: 
        print("Недостающие учителя:") 
        for teacher in missing_teachers: 
            print("-", teacher) 
 
    # Ищем расписание на класс 
    schedule = [] 
    for row in soup.find_all('tr'): 
        if 'class' in str(row) and 'style' not in str(row):  # Исключаем строки с недостающими учителями 
            schedule.append(row.get_text(strip=True)) 
 
    if schedule: 
        print("Расписание на класс:") 
        for entry in schedule: 
            print("-", entry) 
else: 
    print("Не удалось получить страницу. Статус код:", response.status_code) 
 
Аватар пользователя
Мыслитель
7мес

А мы тебе это как сделаем екарний бабай