Perguntas Frequentes

Perguntas Frequentes

Licenciamento & Código Aberto

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

A biblioteca é lançada sob a Licença MIT. O texto completo é fornecido como o LICENSE arquivo em repositório GitHub.

Posso usá-la em produtos comerciais?

Sim. A Licença MIT permite uso comercial, modificação, redistribuição e sublicenciamento. O único requisito é manter o aviso de direitos autorais e o texto da licença nas cópias substanciais.

Instalação & Requisitos

Como instalo a biblioteca e quais versões do Python são suportadas?

Instale com git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git. A biblioteca requer Python 3.10 ou posterior; a versão atual é 0.1.0.

Existem dependências nativas?

Não. A implementação é pura Python — sem motor de navegador, sem extensões compiladas — portanto comporta-se de forma idêntica no Windows, Linux e macOS, inclusive em runners de CI e contêineres.

API Usage

Como faço para analisar HTML em um documento?

Use HTMLDocument.parse() para páginas completas ou HTMLDocument.parse_fragment() para marcação parcial. Para construção programática, Document é a fábrica de nós:

from aspose_html.dom import Document
doc = Document()
el = doc.create_element("div")
el.set_attribute("id", "bar")
doc.append_child(el)

Como aplico CSS e leio o estilo resultante?

Analise o texto da folha de estilo com CSSStyleSheet.replace_sync(), anexe-o com Document.attach_style_sheet() e leia o resultado resolvido com Element.get_computed_style():

from aspose_html.cssom import CSSStyleSheet
sheet = CSSStyleSheet()
sheet.replace_sync("#bar { color: blue }")
doc.attach_style_sheet(sheet)
print(el.get_computed_style().get_property_value("color"))

A cascata lida com especificidade e !important corretamente?

Sim. Valores computados seguem a especificidade dos seletores (ID supera classe, que supera tipo), declarações inline têm precedência sobre regras de autor, e !important regras de autor têm precedência sobre declarações inline não importantes. A herança flui do pai para o filho para propriedades herdáveis.

Posso usar o tokenizador e o construtor de árvore diretamente?

Sim — Tokenizer.tokenize() emite o fluxo de tokens padrão, TreeBuilder.run() realiza a construção da árvore e parse_html() encapsula todo o pipeline em uma única chamada.

Como trabalho com URLs e codificações de caracteres?

URL.parse() e URL.can_parse() fornecem manipulação de URLs no estilo WHATWG com URLSearchParams para strings de consulta. Para bytes brutos, detect_encoding() devolve a codificação, um nível de confiança e o texto decodificado.

Limitações conhecidas

Existem APIs presentes, mas não implementadas?

Um pequeno número de membros está declarado, mas não está funcional atualmente, incluindo CSSRule.type, CSSRule.css_text e HTMLImageElement.decode. O arquivo limitations.md no modelo de conhecimento rastreia esses; evite depender deles.

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

Não. A versão atual foca em análise, manipulação de DOM, cálculo de estilo CSS, estruturas de layout, URLs e codificações. Não inclui conversão de formatos nem renderização de imagem/PDF.

O JavaScript é executado automaticamente durante a análise?

Não. A análise nunca executa scripts. A avaliação de scripts é explícita e opcional através de JSContext, com o carregamento de módulos controlado por ModuleRegistry e ModuleLoadPolicy.

Ver também

 Português