0
HTMLParser를 사용하여 기본 HTML을 구문 분석하고 있는데, 여러 가지 이유로 BeautifulSoup를 사용하고 싶지 않습니다. HTMLParser를 하위 클래스로 만들었으므로 실제 파서는 정상적으로 작동합니다. 그러나 서브 클래스의 init_ 메소드가 호출되지 않습니다. 대신, 새 하위 클래스 객체를 만들면 HTMLParser의 init 메서드가 직접 호출되고 하위 클래스 init은 전혀 호출되지 않습니다. 이것은 HTMLParser.HTMLParser 및 urllib.HTMLParser에서 상속받을 때 발생합니다. 코드는 다음과 같습니다.하위 클래스 _init_ 메소드가 무시되었습니다. - 실행이 곧바로 수퍼 클래스로 바뀝니다. _init_
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)
와우. 정말 고맙습니다. 나는 두 배 밑줄임을 결코 깨닫지 못했다. – bsg