Python 中的 html5lib 和 lxml 解析器
html5lib 是一個用於解析 HTML 的純 Python 庫。它旨在符合 WHATWG HTML 規範,並由所有主流 Web 瀏覽器實現。它可以解析 HTML 文件中的幾乎所有元素,將其分解為不同的標記和塊,這些標記和塊可以根據不同的用例進行篩選。它以與主流瀏覽器相同的方式解析文字。它還可以處理破損的 HTML 標記,並新增一些必要的標記來完成結構。而且,它用純 Python 程式碼編寫。
lxml 也是一個類似的解析器,但是受 XML 而非 HTML 特性的驅動。它依賴於外部 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 透過合併
標記建立了一個更完整的 HTML 文件。而 lxml 庫更關注 XML 樣式的結構,並且完全忽略了
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP