pythonで情報抽出

大学図書館のカレンダーがical形式でないのが面白くないので、自動生成できないかと約10年ぶりにやってみました。
pythonなcodeは初めてです。継ぎ接ぎコード。

# -*- coding: utf-8 -*-
# これで日本語が使える

import urllib2             #webからデータを取ってくる
import codecs             #s-jis対応
import re                    #正規表現とか
from HTMLParser import HTMLParser #htmlタグを分解

class Testparser(HTMLParser):
    def __init__(self):
        HTMLParser.__init__(self)
        self.holidays=[]                 #休日を入れる
        self.shortdays=[]               #短かい日を入れる
        self.holidayFlag=""
        self.shortdayFlag=""
        self.date=""                        #日付
        self.campusFlag=""

    def handle_starttag(self, tag, attrs):
        holiday_style='255, 204, 153'
        shortday_style='204, 255, 255'

        if tag == "td":
            attrs = dict(attrs)
            if "style" in attrs:
                if re.search(holiday_style,attrs['style']):
                    self.holidayFlag = attrs["style"]
                if re.search(shortday_style,attrs['style']):
                    self.shortdayFlag = attrs["style"]


    def handle_endtag(self, tag):
        if tag == "td":
            if self.holidayFlag:
                self.holidays.append((self.date))

            if self.shortdayFlag:
                self.shortdays.append((self.date))

            self.holidayFlag = self.shortdayFlag = self.date = ""                    


    def handle_data(self, data):
        tmp = data.strip()
        if re.search(u'寝屋川キャンパス',tmp):
               self.campusFlag = tmp
        if re.search(u'キャンパス',tmp):
               self.campusFlag = tmp
        if self.campusFlag == u'寝屋川キャンパス':
            if self.holidayFlag:
                self.date += tmp
            if self.shortdayFlag:
                self.date += tmp

if __name__ == "__main__":

    #  htmldata = urllib2.urlopen("http://www.lib.osakac.ac.jp/guide/ca.htm")
    # htmldata= unicode(open("ca.html"),'utf-8')

    htmldata = codecs.open('ca.html', 'r', 's-jis')
    
    parser = Testparser()
    parser.feed(htmldata.read())
    while(True):
        try:
            parser.holidays.remove("")
        except ValueError:
            break
    print "holidays"
    for i in range(len(parser.holidays)):
            print (parser.holidays[i])
    print "shortdays"
    for i in range(len(parser.shortdays)):
            print (parser.shortdays[i])
    parser.close()
    htmldata.close()