Aspose.HTML FOSS for Python est une bibliothèque gratuite et open-source pour travailler avec des documents HTML dans des applications Python. Installez-la avec une seule commande git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git et commencez à analyser le balisage en un modèle d’objet de document, à construire et modifier des arbres d’éléments, à attacher des feuilles de style CSS, à résoudre les styles calculés et à travailler avec les URL et les encodages de caractères — le tout en pur Python sans dépendance de navigateur.
The library exposes a standards-oriented API built around HTMLDocument, Document, Element, and CSSStyleSheet. Parse markup with HTMLDocument.parse(), create and connect nodes with Document.create_element() and append_child(), look elements up with get_element_by_id(), style them through CSSStyleSheet.replace_sync() and the element-level style declaration, and read the result back with Element.get_computed_style(). Lower-level building blocks — the HTML Tokenizer, the TreeBuilder, WHATWG-style URL and URLSearchParams, and the detect_encoding() byte-stream detector — are available when you need direct control.
Aspose.HTML FOSS est sous licence MIT et implémenté en pur Python, nécessitant Python 3.10 ou ultérieur. Il s’exécute de façon identique sur Windows, Linux et macOS — y compris les exécutants CI, les conteneurs Docker et les environnements serverless. Pour la gamme de produits d’entreprise, voir Aspose.HTML — Enterprise Product Family.
HTMLDocument.parse() ou les fragments avec HTMLDocument.parse_fragment()Document.create_element() et append_child()Document.get_element_by_id() et lire les attributs du balisage via Element.get_attribute()Element.set_attribute() et assigner du texte via Node.text_contentserialise()CSSStyleSheet.replace_sync() et attache-le via Document.attach_style_sheet()style de l’élément avec CSSStyleDeclaration.set_property()Element.get_computed_style()CSSStyleDeclaration.get_property_value()Tokenizer.tokenize() ou Tokenizer.tokenize_fragment()TreeBuilder.run()parse_html()URL.parse() et URL.can_parse()URLSearchParams — append(), get(), has(), delete()detect_encoding()get_canonical_name()Créez un document, attachez une feuille de style et lisez le style calculé — le sélecteur ID l’emporte sur la règle de classe :
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"))
Les déclarations en ligne ont une spécificité plus élevée que les règles de feuille de style de l’auteur :
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"))
Détectez l’encodage d’un flux d’octets brut, BOM inclus, et récupérez le texte décodé :
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)
La licence MIT — l’utilisation commerciale, la modification et la redistribution sont toutes autorisées ; la seule exigence est de conserver l’avis de droit d’auteur avec les copies substantielles.
Python 3.10 ou version ultérieure. Installez avec git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git — l’implémentation est pure Python sans dépendances natives.
Utilisez HTMLDocument.parse() pour les pages complètes ou HTMLDocument.parse_fragment() pour le balisage partiel ; Document est la fabrique pour construire des arbres programmatiquement.
Oui — les valeurs calculées suivent la spécificité des sélecteurs, les déclarations en ligne priment sur les règles d’auteur, les règles d’auteur !important priment sur les déclarations en ligne non importantes, et l’héritage s’écoule du parent à l’enfant.
Non. La version actuelle se concentre sur l’analyse, la manipulation du DOM, le calcul du style CSS, les structures de mise en page, les URLs et les encodages — aucune conversion de format ni rendu d’image/PDF.
Non. L’analyse ne lance jamais de scripts ; l’évaluation est explicite et sur demande via JSContext avec le chargement des modules contrôlé par ModuleRegistry et ModuleLoadPolicy.