Этот пост оставляю здесь как кейс по прикладной автоматизации данных: не просто «спарсить один раз», а собрать рабочий процесс, который стабильно живет сам по себе и дает полезный результат.
Челлендж был в двух частях. Первая: сделать парсер и задеплоить его так, чтобы он отрабатывал каждый день весь год. В итоге задача работала по cron: запускалась ежедневно, парсила данные и дописывала архив в CSV. Вторая: сделать данные наглядными. Для этого хорошо подошли Google Charts; ниже в посте показаны статические скриншоты с интерактивных версий графиков (если открыть все интерактивные диаграммы на одной странице, браузеру становится тяжеловато).
Если вам нужно парсить что-то похожее (по расписанию, с накоплением архива и нормальной визуализацией данных), отправьте задачу в бриф.
Исходная задача
Год назад один друг-альпинист написал: «Вот адреса страничек, которые надо мониторить, они все одинаковые по структуре:
- http://www.mountain-forecast.com/peaks/Monte-San-Valentin/forecasts/4058
- http://www.mountain-forecast.com/peaks/Monte-Burney/forecasts/1758
- http://www.mountain-forecast.com/peaks/Lautaro/forecasts/3380
- http://www.mountain-forecast.com/peaks/Monte-Darwin/forecasts/2488
- http://www.mountain-forecast.com/peaks/San-Lorenzo-Patagonia/forecasts/3706
- http://www.mountain-forecast.com/peaks/Cerro-Arenales/forecasts/3437
За неимением на Маке средства обвести красненьким на скриншоте, пишу словами что надо парсить:
Weather Forecast Issued (local time) - лучше, наверное, разбивать на три поля: Время, Число, Месяц-год, чтобы потом в Экселе было удобно считать среднее.
И три раза на ближайший день (колонки am/pm/night) следующие поля:
- Summary (текстовка)
- Wind (km/h)
- Snow (cm)
- High °C
- Low °C
- Chill °C
- Freezing level (m)
Думаю, будет достаточно заходить раз в день в 9 часа по Питеру, это 3 ночи по их времени - гарантированно будут три колонки на ближайший день. Сохранять все, наверное, в csv».
По температуре - средняя - это как средняя температура по больнице. Надо два отдельных графика - максимальная за день и минимальная за день.
+ максимальная скорость ветра
+ wind chill
Список вершин в Чили (wikipedia.org)
А вот, что из этого получилось.
Monte Burney

Monte Darwin

Lautaro

Cerro Arenales

San Lorenzo Patagonia

Monte San Valentin






