Cara Mengurai HTML dalam Python
Aspose.HTML FOSS untuk Python mengurai markup dengan algoritma konstruksi pohon standar: HTMLDocument.parse() untuk halaman lengkap, HTMLDocument.parse_fragment() untuk potongan kode, dan kelas elemen bertipe (HTMLElement dan subclass-nya) dalam hasil. Panduan ini mencakup titik masuk parsing dan memverifikasi output melalui DOM, menggunakan pip untuk instalasi.
Panduan Langkah demi Langkah
Langkah 1: Instal Paket
git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git
cd Aspose.HTML-FOSS-for-Python
pip install -e .Langkah 2: Impor Kelas yang Diperlukan
from aspose_html.html_document import HTMLDocument
from aspose_html.dom import DocumentLangkah 3: Pilih Titik Masuk Parsing yang Tepat
HTMLDocument.parse() menjalankan konstruksi pohon dokumen penuh dengan pemulihan kesalahan standar; HTMLDocument.parse_fragment() menerapkan algoritma fragmen untuk markup parsial; HTMLDocument.load() membaca dari sebuah sumber. Elemen yang diurai tiba dengan tipe — sebuah <a> adalah sebuah HTMLAnchorElement, sebuah <input> adalah sebuah HTMLInputElement.
Langkah 4: Verifikasi Output Melalui DOM
Hasil parsing adalah pohon DOM normal — API pencarian dan atribut yang sama berlaku. Membangun struktur ekuivalen secara programatik menunjukkan permukaan yang sama:
doc = Document()
el = doc.create_element("div")
el.set_attribute("id", "content")
doc.append_child(el)
print(doc.get_element_by_id("content").has_child_nodes())Langkah 5: Lanjutkan dengan Gaya atau Struktur
Lampirkan stylesheet dan baca gaya yang dihitung, atau gunakan bantuan penyisipan Element (insert_adjacent_html(), insert_adjacent_text()) untuk penyuntingan terlokalisasi — output parsing memberi makan setiap lapisan lainnya.
Masalah Umum dan Solusinya
Markup parsial memperoleh pembungkus html dan body. parse() menerapkan aturan dokumen penuh; gunakan parse_fragment() untuk cuplikan.
Markup yang rusak diparse tanpa error. Itu adalah perilaku standar — konstruksi pohon menentukan pemulihan untuk setiap kasus error alih-alih melempar.
Konten tabel muncul di luar tabelnya. Foster parenting untuk konten tabel yang salah tempat merupakan bagian dari algoritma; perbaiki nesting sumber.
Pertanyaan yang Sering Diajukan
Apakah elemen yang diparse bertipe?
Ya — parsing menghasilkan hierarki HTMLElement: kontrol formulir (HTMLFormElement, HTMLInputElement), konten tersemat (HTMLImageElement, HTMLCanvasElement), navigasi (HTMLAnchorElement), dan lainnya.
Bisakah saya mengendalikan pipeline parsing pada tingkat yang lebih rendah?
Ya — Tokenizer dan TreeBuilder bersifat publik, dengan parse_html() sebagai pembungkus satu-panggilan.
Apakah parsing mengeksekusi skrip?
Tidak. Evaluasi skrip bersifat eksplisit dan terpisah melalui JSContext.