Aspose.HTML FOSS for Python είναι μια δωρεάν, ανοιχτού κώδικα βιβλιοθήκη για εργασία με έγγραφα HTML σε εφαρμογές Python. Εγκαταστήστε την με μια εντολή git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git και ξεκινήστε την ανάλυση του markup σε ένα μοντέλο αντικειμένου εγγράφου, την κατασκευή και τροποποίηση δέντρων στοιχείων, την προσθήκη CSS φύλλων στυλ, την επίλυση υπολογιζόμενων στυλ και την εργασία με URLs και κωδικοποιήσεις χαρακτήρων — όλα σε καθαρό Python χωρίς εξάρτηση από πρόγραμμα περιήγησης.
Η βιβλιοθήκη εκθέτει ένα προσανατολισμένο στα πρότυπα API που βασίζεται στα HTMLDocument, Document, Element και CSSStyleSheet. Αναλύστε το markup με HTMLDocument.parse(), δημιουργήστε και συνδέστε κόμβους με Document.create_element() και append_child(), εντοπίστε στοιχεία με get_element_by_id(), μορφοποιήστε τα μέσω CSSStyleSheet.replace_sync() και της δήλωσης style σε επίπεδο στοιχείου, και διαβάστε το αποτέλεσμα με Element.get_computed_style(). Τα χαμηλότερου επιπέδου δομικά στοιχεία — ο HTML Tokenizer, ο TreeBuilder, τα URL και URLSearchParams τύπου WHATWG, και ο ανιχνευτής ροής bytes detect_encoding() — είναι διαθέσιμα όταν χρειάζεστε άμεσο έλεγχο.
Aspose.HTML FOSS είναι αδειοδοτημένο υπό την MIT και υλοποιείται σε καθαρό Python, απαιτώντας Python 3.10 ή νεότερο. Εκτελείται με τον ίδιο τρόπο σε Windows, Linux και macOS — συμπεριλαμβανομένων των CI runners, Docker containers και serverless περιβαλλοντικών. Για την οικογένεια επιχειρηματικών προϊόντων, δείτε Aspose.HTML — Enterprise Product Family.
HTMLDocument.parse() ή τμήματα με HTMLDocument.parse_fragment()Document.create_element() και append_child()Document.get_element_by_id() και διαβάστε τα χαρακτηριστικά σήμανσης μέσω Element.get_attribute()Element.set_attribute() και εκχωρήστε κείμενο μέσω Node.text_contentserialise()CSSStyleSheet.replace_sync() και συνδέστε το μέσω Document.attach_style_sheet()style του στοιχείου με CSSStyleDeclaration.set_property()Element.get_computed_style()CSSStyleDeclaration.get_property_value()Tokenizer.tokenize() ή Tokenizer.tokenize_fragment()TreeBuilder.run()parse_html()URL.parse() και URL.can_parse()URLSearchParams — append(), get(), has(), delete()detect_encoding()get_canonical_name()Δημιουργήστε ένα έγγραφο, επισυνάψτε ένα φύλλο στυλ και διαβάστε το υπολογισμένο στυλ — ο επιλογέας ID υπερισχύει του κανόνα κλάσης:
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"))
Οι δηλώσεις ενσωματωμένου στυλ έχουν υψηλότερη ειδικότητα από τους κανόνες του φύλλου στυλ του δημιουργού:
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"))
Ανίχνευσε την κωδικοποίηση ενός ακατέργαστου ρεύματος byte, συμπεριλαμβανομένου του BOM, και πάρε το αποκωδικοποιημένο κείμενο πίσω:
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)
Η άδεια MIT — η εμπορική χρήση, η τροποποίηση και η αναδιανομή επιτρέπονται όλα· η μόνη απαίτηση είναι η διατήρηση της ειδοποίησης πνευματικών δικαιωμάτων με σημαντικά αντίγραφα.
Python 3.10 ή μεταγενέστερο. Εγκατάσταση με git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git — η υλοποίηση είναι καθαρή Python χωρίς εγγενείς εξαρτήσεις.
Χρησιμοποιήστε HTMLDocument.parse() για πλήρεις σελίδες ή HTMLDocument.parse_fragment() για μερική σήμανση· Document είναι το εργοστάσιο για τη δημιουργία δέντρων προγραμματιστικά.
Ναι — οι υπολογισμένες τιμές ακολουθούν την ειδικότητα του επιλεκτή, οι ενσωματωμένες δηλώσεις υπερισχύουν των κανόνων του δημιουργού, οι κανόνες του δημιουργού !important υπερισχύουν των μη-σημαντικών ενσωματωμένων δηλώσεων, και η κληρονομικότητα ρέει από τον γονέα στο παιδί.
Όχι. Η τρέχουσα έκδοση εστιάζει στην ανάλυση, τη διαχείριση DOM, τον υπολογισμό στυλ CSS, τις δομές διάταξης, τις URLs και τις κωδικοποιήσεις — χωρίς μετατροπή μορφής ή απόδοση image/PDF.
Όχι. Η ανάλυση δεν εκτελεί ποτέ σενάρια· η αξιολόγηση είναι ρητή και απαιτεί συγκατάθεση μέσω JSContext με τη φόρτωση μονάδων να ελέγχεται από το ModuleRegistry και το ModuleLoadPolicy.