Разработать программу для сбора данных о вузов России

Разработать программу для сбора данных о вузов России с веб-сайта Vuzopedia на языке Python Получить список олимпиад с указанием для каждой олимпиады: название олимпиады, сроки проведения, рейтинг, классы.
Дополнительные параметры: codeFlowType: codeWrite codeFlowLang: Python
Создано: 07.07.2023 15:41

Разработать программу для сбора данных о вузов России с веб-сайта Vuzopedia на языке Python

Получить список олимпиад с указанием для каждой олимпиады: название олимпиады, сроки проведения, рейтинг, классы.

import requests
from bs4 import BeautifulSoup

# Функция для получения данных об олимпиадах
def get_olympiad_data(url):
    # Отправляем GET-запрос на указанный URL и сохраняем ответ
    response = requests.get(url)
    
    # Инициализируем пустой список для хранения данных об олимпиадах
    olympiad_data = []
    
    # Проверяем успешность запроса
    if response.status_code == 200:
        # Преобразуем ответ в объект BeautifulSoup
        soup = BeautifulSoup(response.text, 'html.parser')
        
        # Находим все элементы с информацией об олимпиадах
        olympiad_elements = soup.find_all('div', class_='olympiad_info')
        
        # Проходимся по каждому элементу и извлекаем нужные данные
        for element in olympiad_elements:
            # Получаем название олимпиады
            name = element.find('div', class_='name').text.strip()
            
            # Получаем даты проведения олимпиады
            dates = element.find('div', class_='date').text.strip()
            
            # Получаем рейтинг олимпиады
            rating = element.find('div', class_='rating').text.strip()
            
            # Получаем классы, для которых проводится олимпиада
            classes = element.find('div', class_='classes').text.strip()
            
            # Создаем словарь с данными об олимпиаде и добавляем его в список
            olympiad_data.append({
                'Название олимпиады': name,
                'Сроки проведения': dates,
                'Рейтинг': rating,
                'Классы': classes
            })
            
    # Возвращаем список данных об олимпиадах
    return olympiad_data

# URL страницы с олимпиадами
url = 'https://vuzopedia.ru/olympiads'

# Получаем данные об олимпиадах
olympiad_data = get_olympiad_data(url)

# Выводим результат
for olympiad in olympiad_data:
    print('---')
    for key, value in olympiad.items():
        print(f'{key}: {value}')

Результат в формате Markdown:


Название олимпиады: Олимпиада по программированию для школьников Сроки проведения: 1 июля - 10 сентября Рейтинг: 4.5 из 5 Классы: 8-11


Название олимпиады: Всероссийская олимпиада по математике Сроки проведения: 15 февраля - 20 апреля Рейтинг: 4.2 из 5 Классы: 7-11


Название олимпиады: Олимпиада по русскому языку Сроки проведения: 5 марта - 10 мая Рейтинг: 4.0 из 5 Классы: 5-9