#!/usr/bin/env python # # File informatie van NU.nl op de CLI # # Licence: BSDLike - http://rickvanderzwet.nl/LICENSE # Rick van der Zwet from bs4 import BeautifulSoup import re import sys import urllib2 rit = { 'werk' : ['N11', 'A44', 'A4', ] } def usage(): print "Gebruik: %s [rit|weg] [ ...]" % sys.argv[0] exit(128) # Zoek uit welke wegen we moeten zoeken wegen_filter = [] if len(sys.argv) > 1: if len(sys.argv) == 2: usage() elif sys.argv[1] == 'rit': for naam in sys.argv[2:]: if not rit.has_key(naam): print "Geen rit '{0}' bekend (opties: {1})".format(naam, rit.keys()) exit(128) wegen_filter.extend(rit[naam]) elif sys.argv[1] == 'weg': wegen_filter = sys.argv[2:] else: usage() wegen_filter = sorted(set(wegen_filter)) # Vind de wegen bij NU.nl FILE_URL = 'http://www.nu.nl/verkeer/index.html' soup = BeautifulSoup(urllib2.urlopen(FILE_URL)) middle = soup.find('div', { 'class' : 'page_content' }) file_len = 0 for f in middle.find_all('p', { 'style' : 'clear: both' }): text = re.sub('[ ]+',' ', f.get_text().strip().replace('\n', '-')) if len(list(f.children)) != 8: print "# {0}\n".format(text) continue file_len += 1 if wegen_filter and not any(['file: {0} '.format(weg.lower()) in text.lower() for weg in wegen_filter]): continue print text print "" if wegen_filter: print "# Gefiltered op wegen: {0}".format(", ".join(wegen_filter)) print "# Data van: {0}".format(FILE_URL) print "# Totaal {0} files".format(file_len)