Über das google-wetter-api, werden aktuelle daten geladen und als Unicode zurückgegeben
Vorraussetztungen: BeautifulSoup
Code: Alles auswählen
#!/usr/bin/python
try:
import urllib2 as ulib
except ImportError:
import urllib.request as ulib
try:
from BeautifulSoup import BeautifulStoneSoup
except ImportError:
print 'Pls install BeautifulSoup (http://www.crummy.com/software/BeautifulSoup/)'
di = ['city', 'postal_code', 'current_date_time']
dc = ['condition', 'temp_f', 'temp_c', 'humidity', 'wind_condition']
df = ['day_of_week', 'low', 'high', 'condition']
dis = []
dcs = []
dfs = []
class getweather:
def __init__(self, ort):
f = ulib.urlopen('http://www.google.de/ig/api?weather=' + ort)
encoding = f.info()['content-type'].split('charset=')[1]
f = f.read().decode(encoding)
stonesoup = BeautifulStoneSoup(f)
self.forecast_information = stonesoup.find('forecast_information')
self.current_conditions = stonesoup.find('current_conditions')
self.forecast_conditions = stonesoup.findAll('forecast_conditions')
def getdi(self):
for data in di:
dis.append(self.forecast_information.find(data)['data'])
return dis
def getdc(self):
for data in dc:
dcs.append(self.current_conditions.find(data)['data'])
return dcs
def getdf(self):
for forecast in self.forecast_conditions:
for data in df:
dfs.append(forecast.find(data)['data'])
return dfs
if __name__ == '__main__':
munich = getweather('80331')
print munich.getdi()
berlin = getweather('Berlin')
print berlin.getdc()
Code: Alles auswählen
Erklärung für die "Abkürzungen", ergibt sich aus der Api-XML
di = datainformation
dc = datacurrent
df = dataforecast
dis = datainformationsave
dic = datacurrentsave
dfs = dataforecastsave
Code: Alles auswählen
try:
import urllib2 as ulib
except ImportError:
import urllib.request as ulib
aber urllib.request = Python 3 (ich weiß es nicht), falls es nicht so ist pls berichtigt mich, zum testen hab ich gerade keiner Python 3 zur Hand
mfg
PS: Würde mich über Feedback freuen