Aspose.HTML FOSS for Python es una biblioteca gratuita y de código abierto para trabajar con documentos HTML en aplicaciones Python. Instálala con un solo comando git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git y comienza a analizar marcado en un modelo de objeto de documento, construir y modificar árboles de elementos, adjuntar hojas de estilo CSS, resolver estilos computados y trabajar con URLs y codificaciones de caracteres — todo en puro Python sin dependencia de navegador.
La biblioteca expone una API orientada a estándares construida alrededor de HTMLDocument, Document, Element y CSSStyleSheet. Analiza el marcado con HTMLDocument.parse(), crea y conecta nodos con Document.create_element() y append_child(), busca elementos con get_element_by_id(), dales estilo mediante CSSStyleSheet.replace_sync() y la declaración style a nivel de elemento, y lee el resultado con Element.get_computed_style(). Los bloques de construcción de nivel inferior — el HTML Tokenizer, el TreeBuilder, URL y URLSearchParams al estilo WHATWG, y el detector de flujo de bytes detect_encoding() — están disponibles cuando necesites control directo.
Aspose.HTML FOSS tiene licencia MIT y está implementado en puro Python, requiriendo Python 3.10 o posterior. Se ejecuta idénticamente en Windows, Linux y macOS — incluidos los runners de CI, contenedores Docker y entornos sin servidor. Para la familia de productos empresariales, consulta Aspose.HTML — Enterprise Product Family.
HTMLDocument.parse() o fragmentos con HTMLDocument.parse_fragment()Document.create_element() y append_child()Document.get_element_by_id() y lee atributos de marcado mediante Element.get_attribute()Element.set_attribute() y asigna texto a través de Node.text_contentserialise()CSSStyleSheet.replace_sync() y adjuntarlo mediante Document.attach_style_sheet()style del 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() y URL.can_parse()URLSearchParams — append(), get(), has(), delete()detect_encoding()get_canonical_name()Cree un documento, adjunte una hoja de estilo y lea el estilo calculado — el selector ID gana sobre la regla de clase:
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"))
Las declaraciones en línea tienen mayor especificidad que las reglas de la hoja de estilo del autor:
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"))
Detecta la codificación de un flujo de bytes sin procesar, incluido el BOM, y obtén el texto decodificado de vuelta:
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 Licencia MIT — el uso comercial, la modificación y la redistribución están permitidos; el único requisito es mantener el aviso de derechos de autor en copias sustanciales.
Python 3.10 o posterior. Instale con git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git — la implementación es pura Python sin dependencias nativas.
Utilice HTMLDocument.parse() para páginas completas o HTMLDocument.parse_fragment() para marcado parcial; Document es la fábrica para crear árboles programáticamente.
Sí — los valores calculados siguen la especificidad del selector, las declaraciones en línea superan las reglas del autor, las reglas del autor !important superan las declaraciones en línea que no son importantes, y la herencia fluye del padre al hijo.
No. La versión actual se centra en el análisis, la manipulación del DOM, el cálculo de estilos CSS, las estructuras de diseño, URLs y codificaciones — sin conversión de formatos ni renderizado de imagen/PDF.
No. El análisis nunca ejecuta scripts; la evaluación es explícita y opcional a través de JSContext con la carga de módulos controlada por ModuleRegistry y ModuleLoadPolicy.