Aspose.HTML FOSS for Python è una libreria gratuita e open-source per lavorare con documenti HTML nelle applicazioni Python. Installala con un unico comando git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git e inizia a analizzare il markup in un modello di oggetto documento, a costruire e modificare alberi di elementi, a collegare fogli di stile CSS, a risolvere gli stili calcolati e a lavorare con URL e codifiche dei caratteri — tutto in puro Python senza dipendenze dal browser.
La libreria espone un API orientato agli standard costruito intorno a HTMLDocument, Document, Element e CSSStyleSheet. Analizza il markup con HTMLDocument.parse(), crea e collega i nodi con Document.create_element() e append_child(), individua gli elementi con get_element_by_id(), stilali tramite CSSStyleSheet.replace_sync() e la dichiarazione style a livello di elemento, e leggi il risultato con Element.get_computed_style(). Blocchi di costruzione di livello inferiore — il HTML Tokenizer, il TreeBuilder, i URL e URLSearchParams in stile WHATWG, e il rilevatore di flusso di byte detect_encoding() — sono disponibili quando hai bisogno di controllo diretto.
Aspose.HTML FOSS è rilasciata sotto licenza MIT e implementata in puro Python, richiedendo Python 3.10 o successivo. Funziona identicamente su Windows, Linux e macOS — inclusi gli esecutori CI, i container Docker e gli ambienti serverless. Per la famiglia di prodotti enterprise, vedi Aspose.HTML — Enterprise Product Family.
HTMLDocument.parse() o frammenti con HTMLDocument.parse_fragment()Document.create_element() e append_child()Document.get_element_by_id() e leggi gli attributi del markup tramite Element.get_attribute()Element.set_attribute() e assegna il testo tramite Node.text_contentserialise()CSSStyleSheet.replace_sync() e allegalo tramite Document.attach_style_sheet()style dell’elemento con CSSStyleDeclaration.set_property()Element.get_computed_style()CSSStyleDeclaration.get_property_value()Tokenizer.tokenize() o Tokenizer.tokenize_fragment()TreeBuilder.run()parse_html()URL.parse() e URL.can_parse()URLSearchParams — append(), get(), has(), delete()detect_encoding()get_canonical_name()Crea un documento, allega un foglio di stile e leggi lo stile calcolato — il selettore ID prevale sulla regola di 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"))
Le dichiarazioni inline hanno una specificità più alta rispetto alle regole del foglio di stile dell’autore:
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"))
Individua l’encoding di un flusso di byte grezzo, includendo il BOM, e ottieni il testo decodificato:
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 licenza MIT — l’uso commerciale, la modifica e la ridistribuzione sono tutti consentiti; l’unico requisito è mantenere l’avviso di copyright con copie sostanziali.
Python 3.10 o versioni successive. Installa con git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git — l’implementazione è puramente Python senza dipendenze native.
Usa HTMLDocument.parse() per pagine complete o HTMLDocument.parse_fragment() per markup parziale; Document è la factory per creare alberi programmaticamente.
Sì — i valori calcolati seguono la specificità dei selettori, le dichiarazioni inline prevalgono sulle regole dell’autore, le regole dell’autore !important prevalgono sulle dichiarazioni inline non importanti, e l’ereditarietà fluisce dal genitore al figlio.
No. L’attuale rilascio si concentra sul parsing, sulla manipolazione del DOM, sul calcolo degli stili CSS, sulle strutture di layout, sugli URL e sulle codifiche — nessuna conversione di formato o rendering di immagini/PDF.
No. L’analisi non esegue mai script; la valutazione è esplicita e opt-in tramite JSContext con il caricamento dei moduli controllato da ModuleRegistry e ModuleLoadPolicy.