Συχνές Ερωτήσεις
Αδειοδότηση & Ανοιχτός Κώδικας
Τι άδεια χρησιμοποιεί το Aspose.HTML FOSS για το Python;
Η βιβλιοθήκη κυκλοφορεί υπό την άδεια MIT. Το πλήρες κείμενο αποστέλλεται ως το LICENSE αρχείο στο αποθετήριο GitHub.
Μπορώ να το χρησιμοποιήσω σε εμπορικά προϊόντα;
Ναι. Η άδεια MIT επιτρέπει εμπορική χρήση, τροποποίηση, αναδιανομή και υποαδειοδότηση. Η μόνη απαίτηση είναι η διατήρηση της ειδοποίησης πνευματικών δικαιωμάτων και του κειμένου άδειας σε ουσιώδεις αντίτυπα.
Εγκατάσταση & Απαιτήσεις
Πώς εγκαθιστώ τη βιβλιοθήκη και ποιες εκδόσεις του Python υποστηρίζονται;
Εγκατάσταση με git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git. Η βιβλιοθήκη απαιτεί Python 3.10 ή νεότερη· η τρέχουσα έκδοση είναι 0.1.0.
Υπάρχουν εγγενείς εξαρτήσεις;
Όχι. Η υλοποίηση είναι καθαρή Python — χωρίς μηχανή προγράμματος περιήγησης, χωρίς μεταγλωττισμένα επεκτάματα — έτσι συμπεριφέρεται ταυτόσημα σε Windows, Linux και macOS, συμπεριλαμβανομένων των CI runners και των containers.
API Usage
Πώς μπορώ να αναλύσω το HTML σε ένα έγγραφο;
Χρησιμοποιήστε το HTMLDocument.parse() για πλήρεις σελίδες ή το HTMLDocument.parse_fragment() για μερική σήμανση. Για προγραμματιστική κατασκευή, το Document είναι το εργοστάσιο κόμβων:
from aspose_html.dom import Document
doc = Document()
el = doc.create_element("div")
el.set_attribute("id", "bar")
doc.append_child(el)Πώς εφαρμόζω το CSS και διαβάζω το προκύπτον στυλ;
Αναλύστε το κείμενο του φύλλου στυλ με το CSSStyleSheet.replace_sync(), συνδέστε το με το Document.attach_style_sheet() και διαβάστε το επιλυμένο αποτέλεσμα με το Element.get_computed_style():
from aspose_html.cssom import CSSStyleSheet
sheet = CSSStyleSheet()
sheet.replace_sync("#bar { color: blue }")
doc.attach_style_sheet(sheet)
print(el.get_computed_style().get_property_value("color"))Η αλυσίδα (cascade) χειρίζεται σωστά τη συγκεκριμενοποίηση και το !important;
Ναι. Οι υπολογιζόμενες τιμές ακολουθούν τη συγκεκριμενοποίηση του επιλογέα (το ID υπερισχύει της κλάσης, η κλάση υπερισχύει του τύπου), οι ενσωματωμένες δηλώσεις υπερισχύουν των κανόνων του author, και οι !important κανόνες του author υπερισχύουν των μη-σημαντικών ενσωματωμένων δηλώσεων. Η κληρονομικότητα ρέει από το γονιό στο παιδί για τις κληρονομήσιμες ιδιότητες.
Μπορώ να χρησιμοποιήσω απευθείας τον tokenizer και τον tree builder;
Ναι — Tokenizer.tokenize() εκδίδει τη ροή token του προτύπου, TreeBuilder.run() εκτελεί την κατασκευή δέντρου, και parse_html() τυλίγει ολόκληρο το pipeline σε μία κλήση.
Πώς να δουλέψω με URLs και κωδικοποιήσεις χαρακτήρων;
URL.parse() και URL.can_parse() παρέχουν διαχείριση URL σε στυλ WHATWG με URLSearchParams για τα query strings. Για ακατέργαστα bytes, το detect_encoding() επιστρέφει την κωδικοποίηση, ένα επίπεδο εμπιστοσύνης και το αποκωδικοποιημένο κείμενο.
Γνωστοί περιορισμοί
Υπάρχουν API που είναι παρόντα αλλά δεν έχουν υλοποιηθεί;
Μικρός αριθμός μελών έχει δηλωθεί αλλά δεν είναι επί του παρόντος λειτουργικά, συμπεριλαμβανομένων των CSSRule.type, CSSRule.css_text και HTMLImageElement.decode. Το αρχείο limitations.md στο μοντέλο γνώσης παρακολουθεί αυτά· αποφύγετε να βασίζεστε σε αυτά.
Η βιβλιοθήκη αποδίδει σελίδες ή μετατρέπει σε άλλες μορφές;
Όχι. Η τρέχουσα έκδοση εστιάζει στην ανάλυση, τη διαχείριση του DOM, τον υπολογισμό στυλ CSS, τις δομές διάταξης, τα URL και τις κωδικοποιήσεις. Δεν περιλαμβάνει μετατροπή μορφών ή απόδοση εικόνων/PDF.
Εκτελείται το JavaScript αυτόματα κατά την ανάλυση;
Όχι. Η ανάλυση δεν εκτελεί ποτέ σενάρια. Η αξιολόγηση σεναρίων είναι ρητή και απαιτεί ενεργοποίηση μέσω του JSContext, με τη φόρτωση των μονάδων να ελέγχεται από το ModuleRegistry και το ModuleLoadPolicy.