Top.Mail.Ru

Парсинг погоды с сайта Gismeteo на Python

Парсинг погоды с сайта Gismeteo на Python

В этой статье разберём, как автоматически получать данные о погоде с сайта Gismeteo с помощью Python. Мы будем использовать библиотеки requests, BeautifulSoup и pandas для загрузки страницы, извлечения информации и сохранения данных в CSV-файлы.

Такой скрипт можно использовать для:

  • создания собственного погодного сервиса

  • анализа климатических данных

  • автоматического обновления информации на сайте

  • работы с данными в аналитике

Перед началом необходимо установить зависимости:

pip install requests beautifulsoup4 pandas

Используемые библиотеки:

  • requests — отправляет HTTP-запросы и получает HTML страницы

  • BeautifulSoup — позволяет удобно извлекать элементы из HTML

  • pandas — помогает структурировать данные и сохранять их в CSV


Получение HTML страницы

Сначала программа отправляет запрос к странице прогноза погоды.

response = requests.get(url, headers=headers, timeout=10)
response.raise_for_status()
text = response.text

Если сайт временно недоступен, скрипт использует ранее сохранённую HTML-копию страницы:

except:
    with open('data_weather.txt', 'r', encoding='utf-8') as f:
        text = f.read()

Это делает парсер более устойчивым к ошибкам сети.


Парсинг прогноза на месяц

После получения HTML используется BeautifulSoup для поиска нужных элементов.

soup = BeautifulSoup(text, 'html.parser')
weather_items = soup.find_all(['div', 'a'], 'row-item-month-date')

Из каждого блока извлекаются:

  • дата

  • максимальная температура

  • минимальная температура

  • описание погоды

Пример структуры данных:

weather_data.append({
    'date': f'{date} {q}',
    'temp_max': maxt,
    'temp_min': mint,
    'description': description
})

Сохранение данных в CSV

После обработки данные сохраняются в таблицу:

df = pd.DataFrame(weather_data)
df.to_csv('weather_data.csv')

Пример результата:

date temp_max temp_min description
12 мая 18 9 облачно
13 мая 21 11 ясно

Такой файл можно открыть в Excel или использовать для анализа.


Получение текущей погоды

Скрипт также получает текущие погодные условия.

Из страницы извлекаются:

  • текущая температура

  • ощущаемая температура

  • описание погоды

  • влажность

  • дата и время

Пример:

now_weather = soup_now.find('div', class_='now-weather').find('temperature-value').get('value', '')

Результат также сохраняется:

df.to_csv('weather_data_now.csv')

Пример итогового CSV

Файл weather_data_now.csv может выглядеть так:

datetime now_weather now_feel now_desc now_hum
12 мая 14:00 17 15 облачно 65%

Что можно улучшить

Для более продвинутого использования можно добавить:

  • автоматический запуск через cron / scheduler

  • сохранение в базу данных

  • построение графиков температуры

  • API для сайта

  • Telegram-бот с прогнозом

С помощью Python можно быстро создать простой и эффективный парсер погоды.
Комбинация requests + BeautifulSoup + pandas позволяет получать данные, структурировать их и использовать в любых проектах.

Такой подход часто используется в:

  • аналитике данных

  • автоматизации

  • веб-разработке

  • мониторинге информации

 

Автор:

6

Читайте также

0 комментариев

Оставьте комментарий

Комментарии

×
Подпишитесь на наш Telegram-канал, чтобы быть в курсе всех новостей и акций!
Подписаться