Guida Tv in Python
Ho scoperto che all’indirizzo http://tv.lospettacolo.it si trova una bella guida tv formattata in una tabella; codice sporco a non finire, ma chissene, l’importante è che con una bella regex si cattura tutto.
Quale migliore occasione per dare un’occhiata al Python ? Non lo so.
#!/usr/bin/env python
CHANS = {
'rai1' : 10, # rai uno
'rai2' : 21, # rai due
'rai3' : 23, # rai tre
'rete4' : 7, # rete 4
'canale5' : 1, # canale 5
'italia1' : 3, # italia 1
'la7' : 2, # la 7
'mtv' : 36, # mtv
'allmusic' : 106 # all music
}
BASEURL = 'http://tv.lospettacolo.it/canale.asp?comando=canale&dato='
BLUE = '\033[34m'
RESET = '\033[0;0m'
BOLD = '\033[1m'
import re
import urllib
import sys
import getopt
def usage():
print "USAGE: tvguide.py {rai1|rai2|rai3|rete4|canale5|italia1|la7|mtv|allmusic}\n"
print "Options"
print " -h shows this help"
print "\n Content fetched from http://tv.lospettacolo.it"
print "Code by NoWhereMan"
channel = sys.argv[1]
if channel in CHANS.keys() :
url = BASEURL + str(CHANS[channel])
data = urllib.urlopen(url).read()
rgx = re.compile('h: <b>(?P<time>[0-9]{2}:[0-9]{2})</b> - (?P<type>[A-Z]+) <b>(<A[^<]*>)?(?P<title>[^<]*)(</A>)?</b>')
found = rgx.finditer(data)
for match in found :
print match.expand(BLUE + "\\g<time> :" + RESET + BOLD + " \\g<title> " + RESET + "(\\g<type>)")
else :
usage()
Immagino che a lospettacolo.it mi ameranno (come no!), gli aumenterà improvvisamente il traffico a causa degli accessi del mio script. Un bel giorno si romperanno, cambieranno layout e lo script smetterà di funzionare ![]()
Nel frattempo si salvi in tvguide.py
chmod +x tvguide.py ./tvguide.py rai1
canali supportati rai1, rai2, rai3, rete4, canale5, italia1, la7, mtv, allmusic
funziona anche su Windork, a patto di avere Python installato (i caratteri strani sono le sequenze di escape… senza ansi.sys non vanno)