이 모듈에 정의된 HTMLParser 클래스는 HTML 및 XHMTL 문서를 구문 분석하는 기능을 제공합니다. 이 클래스에는 태그, 데이터, 주석 및 기타 HTML 요소를 식별할 수 있는 핸들러 메서드가 포함되어 있습니다.
HTMLParser 클래스를 상속하는 새 클래스를 정의하고 feed() 메서드를 사용하여 HTML 텍스트를 제출해야 합니다.
from html.parser import HTMLParser class parser(HTMLParser): pass p = parser() p.feed('<a href = "www.tutorialspoint.com"></a>')
다음 메서드를 재정의해야 합니다.
handle_starttag(tag, attrs):
HTML 태그는 일반적으로 시작 태그와 끝 태그 쌍으로 구성됩니다. 예를 들어
및 . 이 메소드는 태그의 시작을 처리하기 위해 호출됩니다.소문자로 변환된 태그의 이름입니다. attrs 인수는 태그의 <> 대괄호
안에 있는 속성을 나타냅니다.from html.parser import HTMLParser class parser(HTMLParser): def handle_starttag(self, tag, attrs): print("Start tag:", tag) for attr in attrs: print(" attr:", attr) p = parser() p.feed('<a href = "www.tutorialspoint.com">')
출력
Start tag: a attr: ('href', 'www.tutorialspoint.com') handle_endtag(tag):
이 메소드는 요소의 끝 태그를 처리하기 위해 호출됩니다.
def handle_endtag(self, tag): print ("end tag",tag) handle_data(data):
이 메소드는 태그 사이의 임의의 데이터를 처리하기 위해 호출됩니다. 예:
def handle_data(self, data): print (data) p = parser() html = ''' <html> <body> <h1>Tutorialspoint</h1> <b>Python standard library</b> <p>HTML module</p> </body> </html>''' p.feed(html)
출력
Start tag: h1 Tutorialspoint end tag h1 Start tag: b Python standard library end tag b Start tag: p HTML module end tag p
HTMLParser 클래스의 다른 메서드는 다음과 같습니다.
get_starttag_text()
가장 최근에 연 시작 태그의 텍스트를 반환합니다.
getpos()
현재 줄 번호와 오프셋을 반환합니다.
handle_startendtag(태그, 속성)
handle_starttag()와 유사하지만 파서가 XHTML 스타일의 빈 태그()를 만나면 호출됩니다.
handle_comment(데이터)
이 메소드는 주석을 만났을 때 호출됩니다(예:).