Giới thiệu
Aspose.HTML FOSS cho Python là một thư viện mã nguồn mở mới để làm việc với các tài liệu HTML trong Python. Nó phân tích markup thành mô hình đối tượng tài liệu dựa trên tiêu chuẩn, cho phép bạn xây dựng và sửa đổi cây phần tử một cách lập trình, và giải quyết CSS — bao gồm độ đặc thù, khai báo nội tuyến và kế thừa — thành các kiểu đã tính toán mà bạn có thể đọc lại từ bất kỳ phần tử nào.
Thư viện hướng tới các kịch bản backend và công cụ khi trình duyệt không khả dụng hoặc không mong muốn: các dịch vụ làm sạch HTML đã lưu, các pipeline tái cấu trúc các đoạn trang, và các bộ kiểm thử khẳng định markup được tạo ra. Nó được cài đặt từ PyPI dưới dạng aspose-html-foss, có giấy phép MIT, và được triển khai bằng Python thuần cho Python 3.10 trở lên, vì vậy nó hoạt động giống nhau trên máy của nhà phát triển, các runner CI và máy chủ.
Ngoài lõi DOM và CSS, gói này cung cấp các khối xây dựng thực tiễn mà việc xử lý HTML thường cần: một bộ tokenizer và trình xây dựng cây HTML mà bạn có thể điều khiển trực tiếp, các lớp URL và URLSearchParams kiểu WHATWG, và một bộ phát hiện mã hoá luồng byte.
Có gì bao gồm
Xây dựng và sửa đổi DOM
Lớp DOM được xây dựng quanh Document, Element và Node. Tạo các phần tử với Document.create_element(), kết nối chúng với nhau bằng append_child(), đặt các thuộc tính markup bằng Element.set_attribute(), và tra lại các nút bằng Document.get_element_by_id(). Các trang đầy đủ và các đoạn được phân tích qua HTMLDocument.parse() và HTMLDocument.parse_fragment().
from aspose_html.dom import Document
doc = Document()
el = doc.create_element("div")
el.set_attribute("class", "foo")
el.set_attribute("id", "bar")
doc.append_child(el)
Áp dụng bảng kiểu và Đọc các kiểu đã tính toán
CSSStyleSheet.replace_sync() phân tích văn bản bảng kiểu, Document.attach_style_sheet() đưa nó vào hoạt động, và Element.get_computed_style() giải quyết chuỗi thừa kế. Kết quả tôn trọng độ đặc hiệu của bộ chọn — ở đây quy tắc ID thắng quy tắc lớp:
from aspose_html.dom import Document
from aspose_html.cssom import CSSStyleSheet
doc = Document()
el = doc.create_element("div")
el.set_attribute("class", "foo")
el.set_attribute("id", "bar")
doc.append_child(el)
sheet = CSSStyleSheet()
sheet.replace_sync(".foo { color: red } #bar { color: blue }")
doc.attach_style_sheet(sheet)
style = el.get_computed_style()
print(style.get_property_value("color"))
Khai báo nội tuyến và Chuỗi thừa kế
Mỗi phần tử cung cấp một CSSStyleDeclaration sống qua thuộc tính style của nó. Các khai báo nội tuyến được đặt bằng set_property() có độ đặc hiệu cao hơn các quy tắc bảng kiểu của tác giả, và get_computed_style() phản ánh điều đó:
from aspose_html.dom import Document
from aspose_html.cssom import CSSStyleSheet
doc = Document()
el = doc.create_element("div")
doc.append_child(el)
sheet = CSSStyleSheet()
sheet.replace_sync("div { color: red }")
doc.attach_style_sheet(sheet)
inline = el.style
inline.set_property("color", "blue")
print(el.get_computed_style().get_property_value("color"))
Bộ phân tích token và Trình xây dựng cây
Khi bạn cần kiểm soát nhiều hơn một cây đã hoàn thiện, các lớp dưới cùng là API công cộng. Tokenizer.tokenize() và Tokenizer.tokenize_fragment() phát ra luồng token cho một đoạn markup, TreeBuilder.run() thực hiện việc xây dựng cây dựa trên tiêu chuẩn, và hàm parse_html() chuyển từ markup sang cây trong một lần gọi. Đây là các thành phần giống như những gì đường dẫn phân tích cấp cao sử dụng.
URL và Mã hoá ký tự
URL.parse() và URL.can_parse() xử lý việc phân tích và xác thực URL kiểu WHATWG, với URLSearchParams (append(), get(), has(), delete()) cho chuỗi truy vấn. Đối với byte thô, detect_encoding() phát hiện mã hoá — bao gồm các dấu hiệu thứ tự byte — và trả về văn bản đã giải mã cùng mức độ tin cậy, trong khi get_canonical_name() chuẩn hoá các nhãn mã hoá:
from aspose_html.encoding.detection import detect_encoding
result = detect_encoding(b"\xef\xbb\xbf<p>x</p>")
print(result.encoding)
print(result.confidence)
print(result.text)
Bắt đầu nhanh
Cài đặt từ PyPI:
asposefoss/html is not yet published — build from source until it ships. See the project README for build instructions.Sau đó tạo một tài liệu, định dạng nó, và đọc kết quả đã tính toán:
from aspose_html.dom import Document
from aspose_html.cssom import CSSStyleSheet
doc = Document()
el = doc.create_element("div")
el.set_attribute("id", "bar")
doc.append_child(el)
sheet = CSSStyleSheet()
sheet.replace_sync("#bar { color: blue }")
doc.attach_style_sheet(sheet)
style = el.get_computed_style()
print(style.get_property_value("color"))
Mã nguồn mở & Giấy phép
Aspose.HTML FOSS cho Python được phát hành theo giấy phép MIT, vì vậy việc sử dụng thương mại, sửa đổi và phân phối lại đều được phép. Mã nguồn có sẵn trên GitHub và gói được xuất bản trên PyPI với tên aspose-html-foss.
Bắt đầu
- Bắt đầu
- Hướng dẫn dành cho nhà phát triển
- Bài viết KB
- Câu hỏi thường gặp
- API Reference
- Tổng quan về sản phẩm