Pertanyaan yang Sering Diajukan

Pertanyaan yang Sering Diajukan

Lisensi & Sumber Terbuka

Lisensi apa yang digunakan Aspose.HTML FOSS untuk Python?

Perpustakaan ini dirilis di bawah Lisensi MIT. Teks lengkapnya disertakan sebagai LICENSE file di repositori GitHub.

Apakah saya dapat menggunakannya dalam produk komersial?

Ya. Lisensi MIT mengizinkan penggunaan komersial, modifikasi, redistribusi, dan sublisensi. Satu-satunya persyaratan adalah menjaga pemberitahuan hak cipta dan teks lisensi pada salinan yang signifikan.

Instalasi & Persyaratan

Bagaimana cara menginstal pustaka, dan versi Python mana yang didukung?

Instal dengan git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git. Perpustakaan memerlukan Python 3.10 atau lebih baru; rilis saat ini adalah 0.1.0.

Apakah ada ketergantungan native?

Tidak. Implementasinya murni Python — tanpa mesin peramban, tanpa ekstensi yang dikompilasi — sehingga berperilaku identik pada Windows, Linux, dan macOS, termasuk CI runner dan kontainer.

API Usage

Bagaimana cara saya mengurai HTML menjadi dokumen?

Gunakan HTMLDocument.parse() untuk halaman lengkap atau HTMLDocument.parse_fragment() untuk markup parsial. Untuk konstruksi programatik, Document adalah pabrik node:

from aspose_html.dom import Document
doc = Document()
el = doc.create_element("div")
el.set_attribute("id", "bar")
doc.append_child(el)

Bagaimana cara saya menerapkan CSS dan membaca style yang dihasilkan?

Urai teks stylesheet dengan CSSStyleSheet.replace_sync(), lampirkan dengan Document.attach_style_sheet(), dan baca hasil yang terresolusi dengan Element.get_computed_style():

from aspose_html.cssom import CSSStyleSheet
sheet = CSSStyleSheet()
sheet.replace_sync("#bar { color: blue }")
doc.attach_style_sheet(sheet)
print(el.get_computed_style().get_property_value("color"))

Apakah cascade menangani spesifisitas dan !important dengan benar?

Ya. Nilai yang dihitung mengikuti spesifisitas selector (ID mengalahkan class mengalahkan type), deklarasi inline mengungguli aturan penulis, dan !important aturan penulis mengungguli deklarasi inline yang tidak penting. Pewarisan mengalir dari induk ke anak untuk properti yang dapat diwariskan.

Bisakah saya menggunakan tokenizer dan tree builder secara langsung?

Ya — Tokenizer.tokenize() menghasilkan aliran token standar, TreeBuilder.run() melakukan konstruksi pohon, dan parse_html() membungkus seluruh pipeline dalam satu panggilan.

Bagaimana cara saya bekerja dengan URL dan pengkodean karakter?

URL.parse() dan URL.can_parse() menyediakan penanganan URL gaya WHATWG dengan URLSearchParams untuk string kueri. Untuk byte mentah, detect_encoding() mengembalikan pengkodean, tingkat kepercayaan, dan teks yang didekode.

Keterbatasan yang Diketahui

Apakah ada API yang ada tetapi belum diimplementasikan?

Sejumlah kecil anggota dideklarasikan tetapi belum berfungsi, termasuk CSSRule.type, CSSRule.css_text, dan HTMLImageElement.decode. Berkas limitations.md dalam model pengetahuan melacak ini; hindari mengandalkannya.

Apakah perpustakaan merender halaman atau mengonversi ke format lain?

Tidak. Rilis saat ini berfokus pada parsing, manipulasi DOM, perhitungan gaya CSS, struktur tata letak, URL, dan enkoding. Tidak menyertakan konversi format atau perenderan gambar/PDF.

Apakah JavaScript dijalankan secara otomatis selama parsing?

Tidak. Parsing tidak pernah menjalankan skrip. Evaluasi skrip bersifat eksplisit dan harus dipilih melalui JSContext, dengan pemuatan modul dikendalikan oleh ModuleRegistry dan ModuleLoadPolicy.

Lihat Juga

 Bahasa Indonesia