Pendahuluan
Aspose.HTML FOSS untuk Python adalah perpustakaan open-source baru untuk bekerja dengan dokumen HTML dalam Python. Ia mem-parsing markup menjadi model objek dokumen berbasis standar, memungkinkan Anda membangun dan memodifikasi pohon elemen secara programatik, dan menyelesaikan CSS — termasuk spesifisitas, deklarasi inline, dan pewarisan — menjadi gaya terhitung yang dapat Anda baca kembali dari elemen mana pun.
Perpustakaan ini menargetkan skenario backend dan tooling di mana browser tidak tersedia atau tidak diinginkan: layanan yang membersihkan HTML yang disimpan, pipeline yang menyusun ulang fragmen halaman, dan suite pengujian yang memverifikasi markup yang dihasilkan. Ia dipasang dari PyPI sebagai aspose-html-foss, berlisensi MIT, dan diimplementasikan dalam Python murni untuk Python 3.10 ke atas, sehingga berperilaku sama pada mesin pengembang, runner CI, dan server.
Di luar inti DOM dan CSS, paket ini menyertakan blok bangunan praktis yang biasanya dibutuhkan oleh proses HTML: sebuah tokeniser HTML dan pembangun pohon yang dapat Anda kendalikan secara langsung, kelas URL dan URLSearchParams gaya WHATWG, serta detektor enkoding aliran byte.
Apa yang Disertakan
Membangun dan Memodifikasi DOM
Lapisan DOM dibangun di sekitar Document, Element, dan Node. Buat elemen dengan Document.create_element(), hubungkan mereka dengan append_child(), atur atribut markup dengan Element.set_attribute(), dan temukan kembali node dengan Document.get_element_by_id(). Halaman penuh dan fragmen diparse melalui HTMLDocument.parse() dan 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)
Terapkan Stylesheet dan Baca Gaya yang Dihitung
CSSStyleSheet.replace_sync() mengurai teks stylesheet, Document.attach_style_sheet() menjalankannya, dan Element.get_computed_style() menyelesaikan cascade. Hasilnya menghormati spesifisitas selector — di sini aturan ID mengalahkan aturan kelas:
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"))
Deklarasi Inline dan Cascade
Setiap elemen mengekspos CSSStyleDeclaration yang hidup melalui properti style. Deklarasi inline yang diatur dengan set_property() memiliki spesifisitas lebih tinggi daripada aturan stylesheet penulis, dan get_computed_style() mencerminkan hal itu:
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"))
Tokenizer dan Pembuat Pohon
Ketika Anda memerlukan kontrol lebih daripada pohon yang sudah selesai, lapisan bawah bersifat publik API. Tokenizer.tokenize() dan Tokenizer.tokenize_fragment() menghasilkan aliran token untuk sepotong markup, TreeBuilder.run() melakukan konstruksi pohon berbasis standar, dan fungsi parse_html() mengubah markup menjadi pohon dalam satu panggilan. Ini adalah komponen yang sama yang digunakan jalur parsing tingkat tinggi.
URL dan Pengkodean Karakter
URL.parse() dan URL.can_parse() menangani parsing dan validasi URL gaya WHATWG, dengan URLSearchParams (append(), get(), has(), delete()) untuk string kueri. Untuk byte mentah, detect_encoding() mendeteksi pengkodean — termasuk byte-order mark — dan mengembalikan teks yang didekode bersama tingkat kepercayaan, sementara get_canonical_name() menormalkan label pengkodean:
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)
Panduan Cepat
Instal dari PyPI:
asposefoss/html is not yet published — build from source until it ships. See the project README for build instructions.Kemudian bangun sebuah dokumen, beri gaya, dan baca hasil yang dihitung:
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"))
Sumber Terbuka & Lisensi
Aspose.HTML FOSS untuk Python dirilis di bawah lisensi MIT, sehingga penggunaan komersial, modifikasi, dan redistribusi semuanya diizinkan. Kode sumber tersedia di GitHub dan paket dipublikasikan di PyPI sebagai aspose-html-foss.