• Как сделать так чтобы объединённые ячейки тоже показывались в print?

    @SoySois Автор вопроса
    SoySois, При этом я понимаю в чём проблема в обж, но почему физику не печатает я не понимаю.

    66f4470a3ddb4391514142.jpeg

    66f447114c858845443414.jpeg
    Написано
  • Как сделать так чтобы объединённые ячейки тоже показывались в print?

    @SoySois Автор вопроса
    Vindicar, Я попытался исправить код, и в какой-то степени у меня получилось сделать то что я хотел. Но всё же без проблем не обошлось.

    66f4458447078468074527.jpeg

    66f4458e7a71a538349074.jpeg

    import requests
    from bs4 import BeautifulSoup
    
    url = "https://vos.olimpiada.ru/2024/school"
    response = requests.get(url)
    
    if response.status_code == 200:
        html_content = response.text
    
        soup = BeautifulSoup(html_content, 'html.parser')
    
        schedule_table = soup.find('table', {'border': '1'})
    
        if schedule_table:
            for row in schedule_table.find_all('tr')[1:]:
                cells = row.find_all('td')
                if cells[0].get('rowspan'):
    
                    cells = row.find_all('td')
                    subject = cells[0].get_text(strip=True)
                    grades = cells[1].get_text(strip=True)
                    dates = cells[2].get_text(strip=True)
                    results_publication = cells[3].get_text(strip=True)
    
                    print(f"Предмет: {subject}")
                    print(f"Классы участия: {grades}")
                    print(f"Сроки проведения: {dates}")
                    print(f"Сроки публикации результатов: {results_publication}")
                    print("-" * 50)
    
                    last_results_publication_value = results_publication
                else:
                    results_publication = last_results_publication_value
    
                    cells = row.find_all('td')
                    grades = cells[0].get_text(strip=True)
                    dates = cells[1].get_text(strip=True)
    
                    print(f"Предмет: {subject}")
                    print(f"Классы участия: {grades}")
                    print(f"Сроки проведения: {dates}")
                    print(f"Сроки публикации результатов: {results_publication}")
                    print("-" * 50)
        else:
            print("Таблица с расписанием не найдена.")
    else:
        print(f"Ошибка при доступе к странице: {response.status_code}")
    Написано
  • Как сделать так чтобы объединённые ячейки тоже показывались в print?

    @SoySois Автор вопроса
    Vindicar, На сколько я понимаю там вообще пусто (не сильно разбираюсь в html).

    </tr>
    <tr style="height: 14px;">
    <td style="height: 28px; width: 232.444px;" rowspan="2">Литература</td>
    <td style="height: 14px; width: 54.4583px;">5-6</td>
    <td style="height: 14px; width: 177.806px;"><a href="/news/5450">12-14 сентября</a></td>
    <td style="width: 206.847px; height: 28px;" rowspan="2"><a href="/news/5470">опубликованы 19 сентября</a></td>
    </tr>
    <tr style="height: 14px;">
    <td style="height: 14px; width: 54.4583px;">7-11</td>
    <td style="height: 14px; width: 177.806px;"><a href="/news/5450">12 сентября</a></td>


    66f429c8d835d330384728.jpeg
    Написано
  • Как сделать так чтобы объединённые ячейки тоже показывались в print?

    @SoySois Автор вопроса
    dates = cells[2].get_text(strip=True)
    IndexError: list index out of range
    Когда в таблице есть пустые ячейки, код считает, что в строке всего 2 ячейки и перестаёт работать. Почему он их не видит? Как исправить?
    Написано