Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

html.parser — Python의 간단한 HTML 및 XHTML 파서

<시간/>

이 모듈에 정의된 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 스타일의 빈 태그(html.parser — Python의 간단한 HTML 및 XHTML 파서 )를 만나면 호출됩니다.

handle_comment(데이터)

이 메소드는 주석을 만났을 때 호출됩니다(예:).