Aspose.HTML FOSS for Python é uma biblioteca gratuita e de código aberto para trabalhar com documentos HTML em aplicações Python. Instale-a com um único comando git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git e comece a analisar marcação em um modelo de objeto de documento, construindo e modificando árvores de elementos, vinculando folhas de estilo CSS, resolvendo estilos computados e trabalhando com URLs e codificações de caracteres — tudo em puro Python sem dependência de navegador.
A biblioteca expõe um API orientado a padrões construído em torno de HTMLDocument, Document, Element e CSSStyleSheet. Analise marcação com HTMLDocument.parse(), crie e conecte nós com Document.create_element() e append_child(), procure elementos com get_element_by_id(), estilize-os através de CSSStyleSheet.replace_sync() e da declaração style ao nível do elemento, e leia o resultado de volta com Element.get_computed_style(). Blocos de construção de nível inferior — o HTML Tokenizer, o TreeBuilder, os URL e URLSearchParams no estilo WHATWG, e o detector de fluxo de bytes detect_encoding() — estão disponíveis quando você precisar de controle direto.
Aspose.HTML FOSS tem licença MIT e é implementado em puro Python, exigindo Python 3.10 ou superior. Ele funciona de forma idêntica no Windows, Linux e macOS — incluindo runners de CI, contêineres Docker e ambientes serverless. Para a família de produtos empresariais, veja Aspose.HTML — Enterprise Product Family.
HTMLDocument.parse() ou fragmentos com HTMLDocument.parse_fragment()Document.create_element() e append_child()Document.get_element_by_id() e leia atributos de marcação via Element.get_attribute()Element.set_attribute() e atribua texto através de Node.text_contentserialise()CSSStyleSheet.replace_sync() e anexá-lo via Document.attach_style_sheet()style do elemento com CSSStyleDeclaration.set_property()Element.get_computed_style()CSSStyleDeclaration.get_property_value()Tokenizer.tokenize() ou Tokenizer.tokenize_fragment()TreeBuilder.run()parse_html()URL.parse() e URL.can_parse()URLSearchParams — append(), get(), has(), delete()detect_encoding()get_canonical_name()Crie um documento, anexe uma folha de estilo e leia o estilo computado — o seletor ID tem precedência sobre a regra de 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"))
Declarações inline têm maior especificidade do que regras de folhas de estilo do 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"))
Detecte a codificação de um fluxo de bytes bruto, incluindo o BOM, e obtenha o texto decodificado de volta:
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)
A Licença MIT — uso comercial, modificação e redistribuição são todos permitidos; o único requisito é manter o aviso de direitos autorais nas cópias substanciais.
Python 3.10 ou posterior. Instale com git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git — a implementação é pura Python sem dependências nativas.
Use HTMLDocument.parse() para páginas completas ou HTMLDocument.parse_fragment() para marcação parcial; Document é a fábrica para construir árvores programaticamente.
Sim — valores computados seguem a especificidade dos seletores, declarações inline superam as regras do autor, regras do autor !important superam declarações inline não importantes, e a herança flui do pai para o filho.
Não. A versão atual concentra-se em parsing, manipulação de DOM, cálculo de estilos CSS, estruturas de layout, URLs e codificações — sem conversão de formato ou renderização de imagem/PDF.
Não. A análise nunca executa scripts; a avaliação é explícita e opcional por meio do JSContext com o carregamento de módulos controlado por ModuleRegistry e ModuleLoadPolicy.