FF als update en misschien wil iemand anders hier ook gebruik van maken.
Ik heb het volgende script gemaakt om het weer van Buienradar te halen. De output is in een vorm dat Conky kan lezen:
#!/usr/bin/env python
'''
Usage: get_weather.py <weersstation>
Weerstations kunnen worden gevonden op de buienradar site.
'''
import sys
import re
import urllib2
from time import localtime, strftime
regex = r'/weerstation/grafiek/\d{4}/.{2}\?name=(?P<soort>.*?)(%2520\(km%2Fu\)|)&stationname={stad}&extension=.*?">(?P<waarde>.*?)</a>'
stad = sys.argv[1]
webtext = urllib2.urlopen('http://www.buienradar.nl/')
tabel = webtext.read()
webtext.close()
print('Tijd: $alignr {tijd}'.format(tijd=strftime("%X ", localtime())))
r = re.compile(regex.replace('{stad}',stad))
waarde = [m.groupdict() for m in r.finditer(tabel)]
for w in waarde:
print('{soort}: $alignr {waarde}'.format(soort=w['soort'],waarde=w['waarde']))
Ik heb ook een dergelijk script gemaakt voor verkeers informatie.
#!/usr/bin/env python
'''
usage:
get_traffic.py weg1,weg2,weg3
voorbeeld: get_traffic.py A16,A17,A2
'''
import sys
import re
import urllib2
from textwrap import wrap
from time import localtime, strftime
wegen = sys.argv[1].replace(',','|')
# haal webpagine binnen
fin = urllib2.urlopen('http://vid.nl/VI/overzicht/')#file('temp','r')#text = fin.read()
tabel = fin.read()
fin.close()
print('Tijd: $alignr {tijd}'.format(tijd=strftime("%X ", localtime())))
# regex voor parsen webpagina
searchstring = r'<span class="vi-wegnr">(?P<weg>{weg})</span>(?s).*?<dd class="vi-traject vi-bericht">(?P<where>.*?)</dd>(?s).*?<span class="vi-km">(?P<length>.*?)</span>'
r = re.compile(searchstring.format(weg=wegen))
waarde = [m.groupdict() for m in r.finditer(tabel)]
if waarde:
for w in waarde:
print w['weg'] + '$alignr ' + w['length']
print '\n'.join(wrap(w['where'],30))
else:
print 'no traffic on {wegen}'.format(wegen = sys.argv[1])