0

我正在使用 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)
4

1 回答 1

1

您的函数定义中似乎缺少两个下划线。函数应该是:

def __init__(self, formatter):
于 2014-12-25T17:28:21.617 回答