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

Python의 html5lib 및 lxml 파서

<시간/>

html5lib HTML 구문 분석을 위한 순수 파이썬 라이브러리입니다. 모든 주요 웹 브라우저에서 구현되는 WHATWG HTML 사양을 준수하도록 설계되었습니다. HTML 문서의 거의 모든 요소를 ​​구문 분석하여 다양한 사용 사례에 대해 필터링할 수 있는 여러 태그와 조각으로 나눌 수 있습니다. 주요 브라우저에서 수행하는 것과 동일한 방식으로 텍스트를 구문 분석합니다. 또한 깨진 HTML 태그를 처리하고 구조를 완성하는 데 필요한 몇 가지 태그를 추가할 수 있습니다. 또한 순수한 파이썬 코드로 작성되었습니다.

lxml 또한 유사한 파서이지만 HTML보다 XML 기능에 의해 구동됩니다. 외부 C 라이브러리에 대한 종속성이 있습니다. html5lib에 비해 빠릅니다.

샘플 태그 예제를 통해 이 두 파서의 동작 차이를 관찰하고 출력을 확인하겠습니다.

예시

from bs4 import BeautifulSoup
html5_structure = BeautifulSoup("<head><li></p>", "html5lib")
print(html5_structure)
lxml_structure = BeautifulSoup("<head><li></p>", "lxml")
print(lxml_structure)

위의 코드를 실행하면 다음과 같은 결과가 나옵니다.

출력

<html><head></head><body><li><p></p></li></body></html>
<html><head></head><body><li></li></body></html>

우리가 볼 수 있듯이 html5lib는

꼬리표. lxml 라이브러리는 xml과 같은 구조에 더 집중하고 태그를 완전히 무시합니다.