Python 3.x """ Яндекс.Погода
Есть публичный урл со списком городов: http://weather.yandex.ru/static/cities.xml
Для этих городов можно получить данные о погоде, подставив id города в шаблон: http://export.yandex.ru/weather-ng/forecasts/<id города>.xml
-
Создает файл базы данных SQLite с следующей структурой данных (если файла базы данных не существует):
Погода
id INTEGER PRIMARY KEY Город VARCHAR(255) Дата DATE Температура днем INTEGER Температура ночью INTEGER
-
Скачивает и парсит XML со списком городов
-
Выводит список стран из файла и предлагает пользователю выбрать страну
-
Скачивает XML файлы погоды в городах выбранной страны
-
Парсит последовательно каждый из файлов и добавляет данные о погоде в базу данных. Если данные для данного города и данного дня есть в базе - обновить температуру в существующей записи.
Температура днем и температура ночью берется из forecast/day/day_part@day_short/temperature и forecast/day/day_part@night_short/temperature соответственно:
<forecast ...> <day_part typeid="5" type="day_short"> 29 ... </day_part> <day_part typeid="6" type="night_short"> 18 ... </day_part>
При повторном запуске скрипта:
- используется уже скачанный файл с городами
- используется созданная база данных, новые данные добавляются и обновляются
Порядок запуска скриптов.
Все скрипты звпускаются с командной строки.
-
weather.py - собственно скрипт забирает фаел с yandex.ru с названием стран парсит его и предлдогает выбрать страну, после выборы страны выбирает города этой страны и соответсвенно дневную и ночную температуру создает таблицу в базе данных sqlite.db и складывает информацию о городах и погоде в базу!
export_weather.py - скрипт с возможностью доп. опций берет фаел базы данных конвертирует его в csv-формат и если выбрана оп
--csv выводит все содержимое файла --city выводит информацию о погоде конкретного города.