Πώς να αναλύσετε το HTML στο Python
Aspose.HTML FOSS για Python αναλύει το markup με τον πρότυπο αλγόριθμο κατασκευής δέντρου: HTMLDocument.parse() για πλήρεις σελίδες, HTMLDocument.parse_fragment() για αποσπάσματα, και κλάσεις στοιχείων με τύπους (HTMLElement και τις υποκλάσεις του) στο αποτέλεσμα. Αυτός ο οδηγός καλύπτει τα σημεία εισόδου ανάλυσης και επαληθεύει το αποτέλεσμα μέσω του DOM, χρησιμοποιώντας pip για εγκατάσταση.
Οδηγός Βήμα-Βήμα
Βήμα 1: Εγκατάσταση του Package
git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git
cd Aspose.HTML-FOSS-for-Python
pip install -e .Βήμα 2: Εισαγωγή των Απαιτούμενων Κλάσεων
from aspose_html.html_document import HTMLDocument
from aspose_html.dom import DocumentΒήμα 3: Επιλέξτε το Σωστό Σημείο Εισόδου Ανάλυσης
HTMLDocument.parse() εκτελεί κατασκευή δένδρου πλήρους εγγράφου με αποκατάσταση σφαλμάτων προτύπων· HTMLDocument.parse_fragment() εφαρμόζει τον αλγόριθμο θραύσματος για μερική σήμανση· HTMLDocument.load() διαβάζει από μια πηγή. Τα αναλυμένα στοιχεία εμφανίζονται τυποποιημένα — ένα <a> είναι ένα HTMLAnchorElement, ένα <input> ένα HTMLInputElement.
Βήμα 4: Επαλήθευση εξόδου μέσω του DOM
Το αναλυτικό αποτέλεσμα είναι ένα κανονικό δέντρο DOM — ισχύουν τα ίδια API αναζήτησης και χαρακτηριστικών. Η προγραμματιστική δημιουργία της ισοδύναμης δομής δείχνει την κοινή επιφάνεια:
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())Βήμα 5: Συνεχίστε με στυλ ή δομή
Επισυνάψτε φύλλα στυλ και διαβάστε τα υπολογισμένα στυλ, ή χρησιμοποιήστε τους βοηθούς εισαγωγής Element (insert_adjacent_html(), insert_adjacent_text()) για τοπικές επεμβάσεις — η έξοδος ανάλυσης τροφοδοτεί κάθε άλλη στρώση.
Συνηθισμένα προβλήματα και διορθώσεις
Μερική σήμανση αποκτά περιτυλίγματα html και body. parse() εφαρμόζει κανόνες πλήρους εγγράφου; χρησιμοποιήστε parse_fragment() για αποσπάσματα.
Κακοσχηματισμένη σήμανση αναλύεται χωρίς σφάλματα. Αυτή είναι η συμπεριφορά σύμφωνα με τα πρότυπα — η κατασκευή του δέντρου ορίζει την αποκατάσταση για κάθε περίπτωση σφάλματος αντί για την ανύψωση.
Το περιεχόμενο του πίνακα εμφανίζεται εκτός του πίνακα. Η προώθηση της γονικής διαχείρισης λανθασμένου περιεχομένου πίνακα είναι μέρος του αλγόριθμου· διορθώστε την ένθεση της πηγής.
Συχνές Ερωτήσεις
Τα αναλυμένα στοιχεία είναι τυποποιημένα;
Ναι — η ανάλυση παράγει την ιεραρχία HTMLElement: στοιχεία φόρμας (HTMLFormElement, HTMLInputElement), ενσωματωμένο περιεχόμενο (HTMLImageElement, HTMLCanvasElement), πλοήγηση (HTMLAnchorElement), και άλλα.
Μπορώ να ελέγξω τη γραμμή επεξεργασίας ανάλυσης σε χαμηλότερο επίπεδο;
Ναι — τα Tokenizer και TreeBuilder είναι δημόσια, με το parse_html() ως το one-call wrapper.
Η ανάλυση εκτελεί σενάρια;
Όχι. Η αξιολόγηση του script είναι ρητή και ξεχωριστή μέσω του JSContext.