LINUX.ORG.RU

gismeteo and yandex-pogoda xml

 ,


2

2

А что... Gismeteo и Yandex монетизировались?

- у Гисметео вход для разработчиков без возможности завести аккаунт, https://www.gismeteo.com/api/

- у Яндекса API предоставляется только бизнесу, https://tech.yandex.ru/weather/


Что порекомендуете? AccuWeather? https://apidev.accuweather.com/developers/

Weather Underground API от IBM закрылся, https://www.wunderground.com/weather/api/ (2018, ... The WU API has been around since 2010 to help you develop apps and websites as well as manage your Personal Weather Station data.)

Есть ещё какой-то украинский бесплатный сервис, http://www.weather.ua/services/xml/

★★★★★

О. Даже получилось,

#!/usr/bin/python

import urllib3, pprint, json

key = "xxxxxx"
town = 548408
url = "https://api.openweathermap.org/data/2.5/weather?id=%d&appid=%s" % (town,key)

# lat = 58.596649
# lon = 49.660069
# url = "https://api.openweathermap.org/data/2.5/weather?lat=%d&lon=%d&appid=%s" % (lat,lon,key)

http = urllib3.PoolManager()
req = http.request('GET', url)
data = json.loads(req.data)
pprint.pprint(data)

'''
     "name": "Kirov",
     "country": "RU",
     "coord": {
       "lon": 49.660069,
       "lat": 58.596649
     }
'''

{u'base': u'stations',
 u'clouds': {u'all': 0},
 u'cod': 200,
 u'coord': {u'lat': 58.6, u'lon': 49.66},
 u'dt': 1556500672,
 u'id': 548408,
 u'main': {u'grnd_level': 995.76,
           u'humidity': 83,
           u'pressure': 1020.04,
           u'sea_level': 1020.04,
           u'temp': 269.531,
           u'temp_max': 269.531,
           u'temp_min': 269.531},
 u'name': u'Kirov',
 u'sys': {u'country': u'RU',
          u'message': 0.0066,
          u'sunrise': 1556499142,
          u'sunset': 1556555097},
 u'weather': [{u'description': u'clear sky',
               u'icon': u'01d',
               u'id': 800,
               u'main': u'Clear'}],
 u'wind': {u'deg': 355.725, u'speed': 3.26}}


Если у кого-то есть другие варианты, предлагайте.

А температура, похоже, в Кельвинах...

pacify ★★★★★
() автор топика
Ответ на: комментарий от pacify

Если в запрос добавить

 &units=metric
, то будет в градусах Цельсия

asaks
()

внезапно и неожиданно..

cat ~/bin/weather_report

#!/bin/bash
curl wttr.in/$@
anonymous
()

Yandex

Для домашнего использования можно так получить текущую температуру воздуха в твоём Кирове:

#!/bin/bash
UA="Mozilla/5.0"
URL="https://export.yandex.ru/bar/reginfo.xml?region=11070"

curl -s -A "$UA" $URL | grep -m 1 "<temperature class_name" | awk -F ">" '{ print $2 }' | sed 's/[^0-9.-]//g'

dadd ★★★
()

в в погодном плагине xfce используется met.no

MEXAHOTABOP
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.