我正在使用 HTMLParser 来解析一些基本的、格式良好的 HTML,并且由于各种原因不想使用 BeautifulSoup。我对 HTMLParser 进行了子类化,实际的解析器工作正常。但是,没有调用子类的 init_ 方法。相反,当我创建一个新的子类对象时,会直接调用 HTMLParser 的 init 方法,而根本不会调用子类 init。当我从 HTMLParser.HTMLParser 以及 urllib.HTMLParser 继承时,就会发生这种情况。这是代码:
class MyHtmlParser(htmllib.HTMLParser):
def _init_(self, formatter):
print("in init")
htmllib.HTMLParser.__init__(self, formatter)
self.links = []
self.is_li = False
self.close_a = False
self.close_li = False
print "initialized"
def get_links(self):
return self.links
def handle_starttag(self, tag, attrs):
#some functionality here - this works
def handle_endtag(self, tag):
#some functionality here - this works
myparser = MyHtmlParser(formatter.NullFormatter)