Phân Tích Cú Pháp HTML

Haskell:
Phân Tích Cú Pháp HTML

Làm Thế Nào:

Hãy bắt tay vào một số mã lệnh, sử dụng thư viện tagsoup để phân tích một đoạn HTML đơn giản. Đầu tiên, hãy chắc chắn cài đặt gói từ Hackage qua cabal install tagsoup.

import Text.HTML.TagSoup

-- Hãy phân tích một đoạn HTML đơn giản
let html = "<html><body><p>Hello, Haskell!</p></body></html>"

-- Phân tích cú pháp nó
let parsedHtml = parseTags html

-- Tìm các đoạn văn
let paragraphs = partitions (~== "<p>") parsedHtml

-- Lấy văn bản từ đoạn đầu tiên
let firstParagraphText = innerText $ head paragraphs

-- Vào đây!
print firstParagraphText

Kết quả mẫu:

"Hello, Haskell!"

Đoạn mã này phân tích một chuỗi HTML, tìm kiếm các thẻ đoạn văn và in ra văn bản chứa trong đoạn đầu tiên. Gọn gàng và ngọt ngào.

Sâu Hơn

Việc phân tích cú pháp HTML trong Haskell chưa bao giờ trở nên dễ dàng như ngày nay. Có một thời, mọi người tự làm trình phân tích cú pháp của riêng họ hoặc đấu tranh với các thư viện cấp thấp hơn, phân tích HTML như thể đó là miền Tây hoang dã.

Ngày nay, bạn có nhiều lựa chọn. tagsoup, như chúng tôi đã sử dụng, tuyệt vời cho khi cấu trúc HTML được xem xét nhiều hơn là một quy tắc—nó khoan dung với HTML hỗn loạn của thực tế. Nếu bạn đang tìm kiếm sự ngặt nghèo hơn, html-conduit kết hợp với xml-conduit từ gói conduit có thể là sự lựa chọn dành cho bạn. Chúng sử dụng phương pháp truyền dữ liệu và khắt khe hơn về cấu trúc.

Bên trong, các thư viện này chuyển đổi HTML thành một cây hoặc một bữa súp thẻ. Chúng cung cấp các hàm tiện ích để truy vấn và thao tác dữ liệu này, làm cho việc phân tích cú pháp HTML ít đau đầu hơn. Hãy nghĩ về chúng như một bản đồ tìm kho báu, nơi X đánh dấu thẻ đoạn văn.

Xem Thêm