Red Spirit

Блог Алексея Таянчина

RSS 2.0

Получение погоды на Node.JS

Получить прогноз погоды на ближайшие 10 дней можно с помощью Яндексовского API. Нам нужно только знать код города и сделать запрос с этим кодом на по нужному URL для получение XML с подробной информацией о погоде для данного города.

Шаг 1. Получаем код города.

Список всех городов в формате XML содержатся в файле http://weather.yandex.ru/static/cities.xml там не только Россия и СНГ, но крупные города всего мира. Сейчас нам требуется загрузить этот файлик локально на сервер и распарсить для поиска кода города по его названию. В качестве XML парсера я использовал модуль node-xml2js. Есть, конечно, много альтернатив, но приглянулся именно этот. Далее, чтобы найти город по его названию мы делаем примерно так:

Шаг 2. Получаем информацию о погоде

После того как код нужного города получен можно сделать прямой запрос на получение погоды по адресу http://export.yandex.ru/weather-ng/forecasts/12345.xml, где 12345 это нужный код. С помощью функции получения удаленного файла загружаем его содержимое в парсер и создаем удобный для дальнейшего использования объект, который включает только необходимую нам информацию. В данном случает берется погода на сегодня и на завтра, на день и ночь включая скорость ветра и время восхода и заката Солнца.

Вроде все, используем объект p дальше как хотим. Для себя я делал бота для чата, который по команде получает погоду на запрашиваемый город, все работает отлично и быстро.

Categories: Node.JS Тэги: , ,