#!/usr/bin/env python

import urllib2
from HTMLParser import HTMLParser

class MyHTMLParser(HTMLParser):

    def parse(self, html):
        self.tdcounter = 0
        self.within_tbody = False
        self.thead_found = False
        self.platby = []
        self.platba_parsed = []
        self.feed(html)
        self.close()

    def handle_starttag(self, tag, attrs):
        if tag == 'td': self.tdcounter += 1
        if tag == 'tbody' and self.thead_found:
            self.within_tbody = True

    def handle_data(self, data):
        if 'VARIABIL' in data: self.thead_found = True
        if self.within_tbody:
            if self.tdcounter in (4,13,17):
                self.platba_parsed.append(data.strip())

    def handle_startendtag(self, tag, attrs):
        if self.within_tbody and tag == 'br':
            self.tdcounter += 1

    def handle_endtag(self, tag):
        if tag == 'tr':
            self.tdcounter = 0
            if self.platba_parsed:
                self.platby.append(self.platba_parsed)
            self.platba_parsed = []
        if tag == 'tbody': self.within_tbody = False

url = 'http://www.rb.cz/firemni-finance/transparentni-ucty/?root=firemni-finance&item1=transparentni-ucty&tr_acc=vypis&account_number=2588438001'
htmlcache = 'ebanka_cache'
try:
    contents = file(htmlcache).read()
except:
    handler = urllib2.urlopen(url)
    contents = handler.read()
    handler.close()
    file(htmlcache, 'w').write(contents)
        
parser = MyHTMLParser()
parser.parse(contents)
for datum, varsymb, castka in parser.platby:
  print '%s;%s;%s;'%(datum, varsymb, castka)
