#!/usr/bin/python
import sgmllib, string
class StrippingParser(sgmllib.SGMLParser):
from htmlentitydefs import entitydefs # replace entitydefs from sgmllib
def __init__(self, umbr):
sgmllib.SGMLParser.__init__(self)
self.result = ""
self.umbruch = umbr
def handle_data(self, data):
if data:
self.result = self.result + data
def handle_charref(self, name):
self.result = "%s%s;" % (self.result, name)
def handle_entityref(self, name):
if self.entitydefs.has_key(name):
x = ';'
else:
# this breaks unstandard entities that end with ';'
x = ''
self.result = "%s&%s%s" % (self.result, name, x)
def start_br(self, attrs):
if self.umbruch == 1:
self.result = self.result + "\n"
def start_p(self, attrs):
#muss vorhanden sein, da sonst end_p() ignoriert wird
pass
def end_p(self):
if self.umbruch == 1:
self.result = self.result + "\n\n"
def unknown_starttag(self, tag, attrs):
pass
def unknown_endtag(self, tag):
pass
def strip(s, umbr=0):
parser = StrippingParser(umbr)
parser.feed(s)
parser.close()
if umbr == 2:
return string.join(string.split(parser.result))
else:
return parser.result
if __name__=='__main__':
import sys
print strip(open(sys.argv[1], "r").read())
|