Cara Mengurai HTML dalam Python

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 Document

Langkah 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.

Lihat Juga

 Bahasa Indonesia