html5lib เป็นไลบรารี่ pure-python สำหรับแยกวิเคราะห์ HTML ได้รับการออกแบบมาเพื่อให้สอดคล้องกับข้อกำหนด WHATWG HTML เช่นเดียวกับเว็บเบราว์เซอร์หลักทั้งหมด มันสามารถแยกวิเคราะห์องค์ประกอบเกือบทั้งหมดของเอกสาร HTML แบ่งออกเป็นแท็กและส่วนต่าง ๆ ซึ่งสามารถกรองออกสำหรับกรณีการใช้งานต่างๆ มันแยกวิเคราะห์ข้อความในลักษณะเดียวกับที่ทำโดยเบราว์เซอร์หลัก นอกจากนี้ยังสามารถจัดการกับแท็ก HTML ที่เสียหายและเพิ่มแท็กที่จำเป็นเพื่อให้โครงสร้างสมบูรณ์ นอกจากนี้ยังเขียนด้วยโค้ด python แท้
lxml เป็น parser ที่คล้ายกัน แต่ขับเคลื่อนโดยคุณสมบัติ 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 มากกว่า และละเว้นแท็กทั้งหมด