Introdução
Aspose.HTML FOSS para Python é uma nova biblioteca de código aberto para trabalhar com documentos HTML em Python. Ela analisa a marcação em um modelo de objeto de documento baseado em padrões, permite que você construa e modifique árvores de elementos programaticamente e resolve CSS — incluindo especificidade, declarações inline e herança — em estilos computados que podem ser lidos de qualquer elemento.
A biblioteca tem como alvo cenários de backend e ferramentas onde um navegador não está disponível ou não é desejado: serviços que limpam HTML armazenados, pipelines que reestruturam fragmentos de página e suítes de teste que verificam a marcação gerada. Ela é instalada a partir de PyPI como aspose-html-foss, possui licença MIT e é implementada em puro Python para Python 3.10 ou posterior, de modo que se comporta da mesma forma em máquinas de desenvolvedor, runners de CI e servidores.
Além do núcleo do DOM e CSS, o pacote inclui blocos de construção práticos que o processamento de HTML normalmente acaba precisando de qualquer forma: um tokenizador e construtor de árvore HTML que você pode acionar diretamente, classes URL e URLSearchParams no estilo WHATWG, e um detector de codificação de fluxo de bytes.
O que está incluído
Construir e Modificar o DOM
A camada DOM é construída em torno de Document, Element e Node. Crie elementos com Document.create_element(), conecte-os com append_child(), defina atributos de marcação com Element.set_attribute() e procure nós novamente com Document.get_element_by_id(). Páginas completas e fragmentos são analisados por meio de HTMLDocument.parse() e HTMLDocument.parse_fragment().
from aspose_html.dom import Document
doc = Document()
el = doc.create_element("div")
el.set_attribute("class", "foo")
el.set_attribute("id", "bar")
doc.append_child(el)
Aplicar Folhas de Estilo e Ler Estilos Computados
CSSStyleSheet.replace_sync() analisa o texto da folha de estilo, Document.attach_style_sheet() coloca-a em ação, e Element.get_computed_style() resolve a cascata. O resultado respeita a especificidade dos seletores — aqui a regra de ID supera 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 e a Cascata
Cada elemento expõe um CSSStyleDeclaration ao vivo através de sua propriedade style. Declarações inline definidas com set_property() possuem maior especificidade que as regras da folha de estilo do autor, e get_computed_style() reflete isso:
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"))
Tokenizador e Construtor de Árvore
Quando você precisa de mais controle do que uma árvore finalizada, as camadas inferiores são API públicas. Tokenizer.tokenize() e Tokenizer.tokenize_fragment() emitem o fluxo de tokens para um trecho de marcação, TreeBuilder.run() realiza a construção de árvore baseada em padrões, e a função parse_html() vai da marcação à árvore em uma única chamada. Esses são os mesmos componentes que o caminho de análise de alto nível utiliza.
URLs e Codificações de Caracteres
URL.parse() e URL.can_parse() lidam com o parsing e validação de URLs no estilo WHATWG, com URLSearchParams (append(), get(), has(), delete()) para strings de consulta. Para bytes brutos, detect_encoding() detecta a codificação — incluindo marcas de ordem de byte — e retorna o texto decodificado juntamente com um nível de confiança, enquanto get_canonical_name() normaliza rótulos de codificação:
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)
Início Rápido
Instale a partir de PyPI:
asposefoss/html is not yet published — build from source until it ships. See the project README for build instructions.Em seguida, crie um documento, estilize-o e leia o resultado calculado:
from aspose_html.dom import Document
from aspose_html.cssom import CSSStyleSheet
doc = Document()
el = doc.create_element("div")
el.set_attribute("id", "bar")
doc.append_child(el)
sheet = CSSStyleSheet()
sheet.replace_sync("#bar { color: blue }")
doc.attach_style_sheet(sheet)
style = el.get_computed_style()
print(style.get_property_value("color"))
Código Aberto & Licenciamento
Aspose.HTML FOSS para Python é lançado sob a licença MIT, portanto o uso comercial, a modificação e a redistribuição são permitidos. O código-fonte está disponível em GitHub e o pacote é publicado em PyPI como aspose-html-foss.
Começando
- Começando
- Guia do Desenvolvedor
- Artigos da Base de Conhecimento
- Perguntas Frequentes
- API Reference
- Visão geral do Produto