Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Parser html5lib và lxml trong Python (BeautifulSoup)


html5lib là thư viện Python thuần túy để phân tích cú pháp (parse) HTML. Nó được thiết kế tuân thủ đặc tả WHATWG HTML, giống như các trình duyệt web chính. Nó parse hầu như tất cả phần tử HTML, chia nhỏ thành các thẻ và đoạn khác nhau để lọc cho các trường hợp sử dụng. Nó parse văn bản giống như trình duyệt. Nó cũng xử lý thẻ HTML hỏng và thêm các thẻ cần thiết để hoàn thiện cấu trúc. Cũng được viết hoàn toàn bằng Python.

lxml cũng là parser tương tự nhưng tập trung vào tính năng XML hơn HTML. Nó phụ thuộc thư viện C bên ngoài. Nó nhanh hơn html5lib.

Hãy quan sát sự khác biệt hành vi của hai parser này qua ví dụ mẫu:

Ví dụ

from bs4 import BeautifulSoup

html5_structure = BeautifulSoup("
  • ", "html5lib") print(html5_structure) lxml_structure = BeautifulSoup("
  • ", "lxml") print(lxml_structure)
  • Kết quả

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

    Như ta thấy, html5lib tạo tài liệu HTML hoàn chỉnh hơn bằng cách thêm thẻ <p>. Thư viện lxml tập trung vào cấu trúc giống XML và bỏ qua thẻ <p> hoàn toàn.