1. Prodotti
  2.   Aspose.HTML
  3.   Aspose.HTML FOSS for Python

Aspose.HTML FOSS per Python

Analizza HTML in un DOM basato su standard, applica CSS e calcola gli stili da Python — gratuito, open-source e puro Python.

Libreria Open-Source Python per l'elaborazione di HTML

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.

HTML Parsing e Manipolazione del DOM

  • Analizza pagine complete con HTMLDocument.parse() o frammenti con HTMLDocument.parse_fragment()
  • Crea documenti programmaticamente con Document.create_element() e append_child()
  • Cerca i nodi con Document.get_element_by_id() e leggi gli attributi del markup tramite Element.get_attribute()
  • Imposta gli attributi con Element.set_attribute() e assegna il testo tramite Node.text_content
  • Serializza qualsiasi sottoalbero di nuovo in markup con la funzione serialise()

Chi utilizza l'elaborazione DOM

  • Servizi backend che puliscono o riscrivono HTML inviati dagli utenti prima della memorizzazione
  • Pipeline di contenuti che estraggono o ristrutturano frammenti di pagina su larga scala
  • Suite di test che verificano la struttura del markup generato in CI

CSS Fogli di stile e stili calcolati

  • Analizza il testo del foglio di stile con CSSStyleSheet.replace_sync() e allegalo tramite Document.attach_style_sheet()
  • Imposta le dichiarazioni inline tramite la proprietà style dell’elemento con CSSStyleDeclaration.set_property()
  • Risolvi la cascata — specificità, regole inline-vs-author e ereditarietà — con Element.get_computed_style()
  • Leggi i valori risolti con CSSStyleDeclaration.get_property_value()

Chi Usa il Calcolo degli Stili

  • Strumenti per email e newsletter che verificano gli stili effettivi prima dell’invio
  • HTML sanitizzatori che devono conoscere lo stile con cui un elemento viene effettivamente renderizzato
  • Sviluppatori che eseguono il debug del comportamento della cascata e della specificità al di fuori di un browser

Tokenizzatore e Costruzione dell’Albero

  • Guidare direttamente il tokenizer HTML con Tokenizer.tokenize() o Tokenizer.tokenize_fragment()
  • Eseguire la costruzione dell’albero basata sugli standard con TreeBuilder.run()
  • Analizzare il markup direttamente in un albero con la funzione parse_html()

Chi utilizza l'analisi di basso livello

  • Linters e analizzatori che ispezionano flussi di token anziché alberi completati
  • Strumenti che necessitano di gestione personalizzata degli errori durante il recupero da markup malformato
  • Progetti educativi che studiano come funziona il parsing basato su standard HTML

URL e Codifiche dei Caratteri

  • Analizza e convalida gli URL con URL.parse() e URL.can_parse()
  • Leggi e modifica le stringhe di query con URLSearchParams — append(), get(), has(), delete()
  • Rileva le codifiche del flusso di byte (BOM e sniffing del contenuto) con detect_encoding()
  • Normalizza le etichette di codifica ai nomi canonici con get_canonical_name()

Chi usa gli strumenti URL e di codifica

  • Crawler e fetcher che devono risolvere e deduplicare gli URL in modo affidabile
  • Pipeline di ingestione che gestiscono documenti legacy con codifiche miste
  • Servizi che analizzano o riscrivono i parametri di query lato server

Costruisci un DOM e Risolvi la Cascata CSS

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"))

Stili Inline Hanno Priorità

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"))

Rileva la codifica dei caratteri da byte

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)

Domande Frequenti

Quale licenza utilizza Aspose.HTML FOSS for Python?

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.

Quali versioni di Python sono supportate e come le installo?

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.

Come faccio a analizzare HTML in un documento?

Usa HTMLDocument.parse() per pagine complete o HTMLDocument.parse_fragment() per markup parziale; Document è la factory per creare alberi programmaticamente.

La cascata CSS gestisce correttamente la specificità e !important?

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.

La libreria rende le pagine o converte in altri formati?

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.

Il JavaScript viene eseguito automaticamente durante il parsing?

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.

  

Risorse di Supporto e Apprendimento

 Italiano