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

関数定義で 2 つのアンダースコアが欠落しているようです。関数は次のようにする必要があります。

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