1. Produk
  2.   Aspose.HTML
  3.   Aspose.HTML FOSS for Python

Aspose.HTML FOSS untuk Python

Parse HTML menjadi DOM berbasis standar, terapkan CSS, dan hitung gaya dari Python — gratis, sumber terbuka, dan murni Python.

Perpustakaan Python Open-Source untuk Pemrosesan HTML

Aspose.HTML FOSS for Python adalah perpustakaan gratis dan sumber terbuka untuk bekerja dengan dokumen HTML dalam aplikasi Python. Instalasi dengan satu perintah git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git dan mulailah mengurai markup menjadi model objek dokumen, membangun dan memodifikasi pohon elemen, melampirkan stylesheet CSS, menyelesaikan gaya terhitung, serta bekerja dengan URL dan pengkodean karakter — semuanya dalam Python murni tanpa ketergantungan peramban.

Perpustakaan ini menyediakan API berorientasi standar yang dibangun di sekitar HTMLDocument, Document, Element, dan CSSStyleSheet. Parse markup dengan HTMLDocument.parse(), buat dan hubungkan node dengan Document.create_element() dan append_child(), temukan elemen dengan get_element_by_id(), beri gaya melalui CSSStyleSheet.replace_sync() dan deklarasi style tingkat elemen, serta baca kembali hasilnya dengan Element.get_computed_style(). Blok bangunan tingkat lebih rendah — HTML Tokenizer, TreeBuilder, URL dan URLSearchParams gaya WHATWG, serta detektor aliran byte detect_encoding() — tersedia ketika Anda memerlukan kontrol langsung.

Aspose.HTML FOSS berlisensi MIT dan diimplementasikan dalam Python murni, memerlukan Python 3.10 atau lebih baru. Ia berjalan identik di Windows, Linux, dan macOS — termasuk runner CI, kontainer Docker, dan lingkungan serverless. Untuk keluarga produk enterprise, lihat Aspose.HTML — Enterprise Product Family.

HTML Parsing dan Manipulasi DOM

  • Mengurai halaman lengkap dengan HTMLDocument.parse() atau fragmen dengan HTMLDocument.parse_fragment()
  • Membuat dokumen secara programatis dengan Document.create_element() dan append_child()
  • Mencari node dengan Document.get_element_by_id() dan membaca atribut markup melalui Element.get_attribute()
  • Mengatur atribut dengan Element.set_attribute() dan menugaskan teks melalui Node.text_content
  • Menyerialkan subpohon apa pun kembali ke markup dengan fungsi serialise()

Siapa yang Menggunakan Pemrosesan DOM

  • Layanan backend yang membersihkan atau menulis ulang HTML yang diajukan pengguna sebelum disimpan
  • Pipeline konten yang mengekstrak atau menyusun kembali fragmen halaman secara skala besar
  • Suite pengujian yang memverifikasi struktur markup yang dihasilkan di CI

CSS Stylesheet dan Gaya yang Dihitung

  • Parse teks stylesheet dengan CSSStyleSheet.replace_sync() dan lampirkan melalui Document.attach_style_sheet()
  • Setel deklarasi inline melalui properti elemen style dengan CSSStyleDeclaration.set_property()
  • Selesaikan cascade — spesifisitas, aturan inline-vs-author, dan pewarisan — dengan Element.get_computed_style()
  • Baca nilai yang telah diselesaikan kembali dengan CSSStyleDeclaration.get_property_value()

Siapa yang Menggunakan Perhitungan Gaya

  • Alat email dan buletin yang memverifikasi gaya efektif sebelum dikirim
  • HTML sanitizers yang perlu mengetahui gaya yang sebenarnya diterapkan pada elemen
  • Pengembang yang men-debug perilaku cascade dan spesifisitas di luar peramban

Tokenizer dan Konstruksi Pohon

  • Jalankan tokenizer HTML secara langsung dengan Tokenizer.tokenize() atau Tokenizer.tokenize_fragment()
  • Jalankan konstruksi pohon berbasis standar dengan TreeBuilder.run()
  • Parse markup langsung ke pohon dengan fungsi parse_html()

Siapa yang Menggunakan Parsing Tingkat Rendah

  • Linters dan analyzer yang memeriksa aliran token daripada pohon yang selesai
  • Alat yang memerlukan penanganan kesalahan khusus selama pemulihan markup yang rusak
  • Proyek edukasi yang mempelajari cara kerja parsing HTML berbasis standar

URL dan Pengkodean Karakter

  • Mengurai dan memvalidasi URL dengan URL.parse() dan URL.can_parse()
  • Membaca dan mengedit string kueri dengan URLSearchParams — append(), get(), has(), delete()
  • Mendeteksi enkoding aliran byte (BOM dan sniffing konten) dengan detect_encoding()
  • Menormalkan label enkoding ke nama kanonik dengan get_canonical_name()

Siapa yang Menggunakan Alat URL dan Encoding

  • Perayap dan pengambil yang harus menyelesaikan dan menghilangkan duplikasi URL secara andal
  • Pipeline ingesti yang menangani dokumen warisan dengan pengkodean campuran
  • Layanan yang mengurai atau menulis ulang parameter kueri di sisi server

Bangun DOM dan Selesaikan CSS Cascade

Buat sebuah dokumen, lampirkan stylesheet, dan baca gaya terhitung — selector 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"))

Gaya Inline Mengambil Prioritas

Deklarasi inline memiliki spesifisitas yang lebih tinggi daripada aturan stylesheet penulis:

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"))

Deteksi Encoding Karakter dari Byte

Deteksi encoding aliran byte mentah, termasuk BOM, dan dapatkan teks terdekripsi kembali:

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)

Pertanyaan yang Sering Diajukan

Lisensi apa yang digunakan Aspose.HTML FOSS for Python?

Lisensi MIT — penggunaan komersial, modifikasi, dan redistribusi semuanya diizinkan; satu-satunya persyaratan adalah menjaga pemberitahuan hak cipta pada salinan yang substansial.

Versi Python apa yang didukung, dan bagaimana cara menginstalnya?

Python 3.10 atau lebih baru. Instal dengan git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git — implementasinya murni Python tanpa dependensi native.

Bagaimana cara mem-parse HTML ke dalam dokumen?

Gunakan HTMLDocument.parse() untuk halaman lengkap atau HTMLDocument.parse_fragment() untuk markup parsial; Document adalah pabrik untuk membangun pohon secara programatis.

Apakah cascade CSS menangani spesifisitas dan !important dengan benar?

Ya — nilai yang dihitung mengikuti spesifisitas selector, deklarasi inline mengungguli aturan penulis, !important aturan penulis mengungguli deklarasi inline yang tidak penting, dan pewarisan mengalir dari induk ke anak.

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 pengkodean — tidak ada konversi format atau rendering gambar/PDF.

Apakah JavaScript dieksekusi secara otomatis selama parsing?

Tidak. Parsing tidak pernah menjalankan skrip; evaluasi bersifat eksplisit dan harus disetujui melalui JSContext dengan pemuatan modul yang dikendalikan oleh ModuleRegistry dan ModuleLoadPolicy.

  

Sumber Daya Dukungan dan Pembelajaran

 Bahasa Indonesia