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

Aspose.HTML FOSS para Python

Analise HTML em um DOM baseado em padrões, aplique CSS e calcule estilos a partir de Python — gratuito, de código aberto e puro Python.

Biblioteca Python de Código Aberto para Processamento HTML

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.

HTML Análise e Manipulação do DOM

  • Analise páginas completas com HTMLDocument.parse() ou fragmentos com HTMLDocument.parse_fragment()
  • Construa documentos programaticamente com Document.create_element() e append_child()
  • Procure nós com Document.get_element_by_id() e leia atributos de marcação via Element.get_attribute()
  • Defina atributos com Element.set_attribute() e atribua texto através de Node.text_content
  • Serializa qualquer subárvore de volta para marcação com a função serialise()

Quem Usa o Processamento DOM

  • Serviços de backend que limpam ou reescrevem HTML enviados pelo usuário antes do armazenamento
  • Pipelines de conteúdo que extraem ou reestruturam fragmentos de página em escala
  • Conjuntos de testes que verificam a estrutura de marcação gerada no CI

CSS Folhas de estilo e Estilos Computados

  • Analisar o texto da folha de estilos com CSSStyleSheet.replace_sync() e anexá-lo via Document.attach_style_sheet()
  • Definir declarações inline através da propriedade style do elemento com CSSStyleDeclaration.set_property()
  • Resolver a cascata — especificidade, regras inline-vs-author e herança — com Element.get_computed_style()
  • Ler os valores resolvidos de volta com CSSStyleDeclaration.get_property_value()

Quem Usa Computação de Estilo

  • Ferramentas de email e newsletter que verificam estilos efetivos antes do envio
  • Sanitizadores HTML que precisam saber o estilo com que um elemento realmente é renderizado
  • Desenvolvedores depurando o comportamento de cascata e especificidade fora de um navegador

Tokenizador e Construção de Árvore

  • Controle o tokenizador HTML diretamente com Tokenizer.tokenize() ou Tokenizer.tokenize_fragment()
  • Execute a construção de árvore baseada em padrões com TreeBuilder.run()
  • Analise a marcação diretamente para uma árvore com a função parse_html()

Quem Usa Low-Level Parsing

  • Linters e analisadores que inspecionam fluxos de tokens em vez de árvores concluídas
  • Ferramentas que precisam de tratamento de erro personalizado durante a recuperação de marcação malformada
  • Projetos educacionais que estudam como funciona a análise HTML baseada em padrões

URLs e Codificações de Caracteres

  • Analisar e validar URLs com URL.parse() e URL.can_parse()
  • Ler e editar strings de consulta com URLSearchParams — append(), get(), has(), delete()
  • Detectar codificações de fluxo de bytes (BOM e detecção de conteúdo) com detect_encoding()
  • Normalizar rótulos de codificação para nomes canônicos com get_canonical_name()

Quem Usa Ferramentas de URL e Codificação

  • Crawlers e fetchers que precisam resolver e desduplicar URLs de forma confiável
  • Pipelines de ingestão que lidam com documentos legados com codificações mistas
  • Serviços que analisam ou reescrevem parâmetros de consulta no lado do servidor

Construa um DOM e Resolva a Cascata CSS

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

Estilos Inline Têm Prioridade

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

Detectar codificação de caracteres a partir de bytes

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)

Perguntas Frequentes

Qual licença o Aspose.HTML FOSS for Python usa?

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.

Quais versões do Python são suportadas e como instalo?

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.

Como faço para analisar HTML em um documento?

Use HTMLDocument.parse() para páginas completas ou HTMLDocument.parse_fragment() para marcação parcial; Document é a fábrica para construir árvores programaticamente.

A cascata CSS trata a especificidade e!important corretamente?

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.

A biblioteca renderiza páginas ou converte para outros formatos?

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.

O JavaScript é executado automaticamente durante a análise?

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.

  

Recursos de Suporte e Aprendizado

 Português