Întrebări frecvente
Licențiere și sursă deschisă
Ce licență folosește Aspose.HTML FOSS pentru Python?
Biblioteca este lansată sub MIT License. Textul complet este livrat ca LICENSE fișierul în depozitul GitHub.
Pot să o folosesc în produse comerciale?
Da. Licența MIT permite utilizarea comercială, modificarea, redistribuirea și sublicențierea. Singura cerință este păstrarea notificării de drepturi de autor și a textului licenței în copiile substanțiale.
Instalare și cerințe
Cum pot instala biblioteca și ce versiuni de Python sunt suportate?
Instalați cu git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git. Biblioteca necesită Python 3.10 sau o versiune ulterioară; versiunea curentă este 0.1.0.
Există dependențe native?
Nu. Implementarea este pur Python — fără motor de browser, fără extensii compilate — astfel că se comportă identic pe Windows, Linux și macOS, inclusiv pe rulere CI și containere.
API Usage
Cum parsez HTML într-un document?
Folosiți HTMLDocument.parse() pentru pagini complete sau HTMLDocument.parse_fragment() pentru markup parțial. Pentru construcție programatică, Document este fabrica de noduri:
from aspose_html.dom import Document
doc = Document()
el = doc.create_element("div")
el.set_attribute("id", "bar")
doc.append_child(el)Cum aplic CSS și citesc stilul rezultat?
Parsează textul foii de stil cu CSSStyleSheet.replace_sync(), atașează-l cu Document.attach_style_sheet() și citește rezultatul rezolvat cu 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"))Cascada gestionează corect specificitatea și !important?
Da. Valorile calculate respectă specificitatea selectorului (ID > clasă > tip), declarațiile inline au prioritate față de regulile autorului, iar !important regulile autorului au prioritate față de declarațiile inline ne-important. Moștenirea curge de la părinte la copil pentru proprietățile moștenibile.
Pot folosi direct tokenizer-ul și constructorul de arbore?
Da — Tokenizer.tokenize() emite fluxul de tokenuri standard, TreeBuilder.run() realizează construcția arborelui și parse_html() înfășoară întregul pipeline într-un singur apel.
Cum lucrez cu URL-urile și codificările de caractere?
URL.parse() și URL.can_parse() oferă gestionarea URL-urilor în stil WHATWG cu URLSearchParams pentru șiruri de interogare. Pentru octeți brute, detect_encoding() returnează codificarea, un nivel de încredere și textul decodat.
Limitări cunoscute
Există API-uri prezente, dar neimplementate?
Un număr mic de membri sunt declaraţi, dar nu sunt în prezent funcţionali, inclusiv CSSRule.type, CSSRule.css_text şi HTMLImageElement.decode. Fişierul limitations.md din modelul de cunoştinţe urmăreşte aceştia; evitaţi să vă bazaţi pe ei.
Biblioteca redă pagini sau converteşte în alte formate?
Nu. Versiunea curentă se concentrează pe parsare, manipularea DOM, calculul stilului CSS, structurile de layout, URL-uri şi codări. Nu include conversie de format sau redare imagine/PDF.
Este JavaScript executat automat în timpul parsării?
Nu. Parsarea nu rulează niciodată scripturi. Evaluarea scripturilor este explicită şi se activează prin JSContext, iar încărcarea modulelor este controlată de ModuleRegistry şi ModuleLoadPolicy.