Foire aux questions
Licences & Open Source
Quelle licence Aspose.HTML FOSS pour Python utilise-t-elle?
La bibliothèque est publiée sous la licence MIT. Le texte complet est fourni en tant que LICENSE fichier dans le dépôt GitHub.
Puis-je l’utiliser dans des produits commerciaux?
Oui. La licence MIT autorise l’utilisation commerciale, la modification, la redistribution et la sous-licence. La seule exigence est de conserver l’avis de droit d’auteur et le texte de la licence avec les copies substantielles.
Installation & exigences
Comment installer la bibliothèque et quelles versions de Python sont prises en charge?
Installez avec git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git. La bibliothèque nécessite Python 3.10 ou version ultérieure; la version actuelle est 0.1.0.
Existe-t-il des dépendances natives?
Non. L’implémentation est pure Python — aucun moteur de navigateur, aucune extension compilée — de sorte qu’elle se comporte de façon identique sous Windows, Linux et macOS, y compris les exécuteurs CI et les conteneurs.
API Usage
Comment analyser HTML en un document?
Utilisez HTMLDocument.parse() pour des pages complètes ou HTMLDocument.parse_fragment() pour du balisage partiel. Pour la construction programmatique, Document est la fabrique de nœuds:
from aspose_html.dom import Document
doc = Document()
el = doc.create_element("div")
el.set_attribute("id", "bar")
doc.append_child(el)Comment appliquer CSS et lire le style résultant?
Analysez le texte de la feuille de style avec CSSStyleSheet.replace_sync(), attachez-le avec Document.attach_style_sheet(), et lisez le résultat résolu avec 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"))La cascade gère-t-elle la spécificité et !important correctement?
Oui. Les valeurs calculées suivent la spécificité des sélecteurs (ID l’emporte sur la classe, qui l’emporte sur le type), les déclarations en ligne priment sur les règles de l’auteur, et !important les règles de l’auteur priment sur les déclarations en ligne non importantes. L’héritage s’étend du parent à l’enfant pour les propriétés héritables.
Puis-je utiliser directement le tokenizer et le tree builder?
Oui — Tokenizer.tokenize() émet le flux de tokens standard, TreeBuilder.run() effectue la construction de l’arbre, et parse_html() encapsule l’ensemble du pipeline en un seul appel.
Comment travailler avec les URL et les encodages de caractères?
URL.parse() et URL.can_parse() offrent une gestion des URL de type WHATWG avec URLSearchParams pour les chaînes de requête. Pour les octets bruts, detect_encoding() renvoie l’encodage, un niveau de confiance et le texte décodé.
Limitations connues
Certaines API sont-elles présentes mais non implémentées?
Un petit nombre de membres sont déclarés mais ne sont pas actuellement fonctionnels, y compris CSSRule.type, CSSRule.css_text et HTMLImageElement.decode. Le fichier limitations.md dans le modèle de connaissances suit ceux-ci; évitez de compter dessus.
La bibliothèque rend-elle des pages ou convertit-elle vers d’autres formats?
Non. La version actuelle se concentre sur l’analyse, la manipulation du DOM, le calcul des styles CSS, les structures de mise en page, les URL et les encodages. Elle ne fournit pas de conversion de formats ni de rendu d’image/PDF.
Est-ce que JavaScript est exécuté automatiquement pendant l’analyse?
Non. L’analyse n’exécute jamais de scripts. L’évaluation des scripts est explicite et nécessite une adhésion via JSContext, le chargement des modules étant contrôlé par ModuleRegistry et ModuleLoadPolicy.