常见问题

许可与开源

什么许可证用于 Aspose.HTML FOSS for Python?

该库在 MIT 许可证下发布。完整文本以该文件的形式提供 LICENSE 文件位于 GitHub 仓库.

我可以在商业产品中使用它吗?

是的。MIT 许可证允许商业使用、修改、再分发以及再授权。唯一的要求是保留版权声明和许可证文本,并随重要副本一起附带。

安装与要求

我该如何安装该库,支持哪些 Python 版本?

使用 git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git 安装。该库需要 Python 3.10 或更高版本;当前版本为 0.1.0。

有没有任何本机依赖?

不。实现是纯 Python — 没有浏览器引擎,没有编译扩展 — 因此在 Windows、Linux 和 macOS 上表现完全相同,包括 CI 运行器和容器。

API Usage

如何将 HTML 解析为文档?

使用 HTMLDocument.parse() 处理完整页面或 HTMLDocument.parse_fragment() 处理部分标记。对于程序化构建,Document 是节点工厂:

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

如何应用 CSS 并读取生成的样式?

使用 CSSStyleSheet.replace_sync() 解析样式表文本,使用 Document.attach_style_sheet() 附加它,并使用 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"))

层叠是否正确处理特异性和 !important?

是的。计算值遵循选择器特异性(ID 胜过 class 胜过 type),内联声明优先于作者规则,且 !important 作者规则优先于非 !important 的内联声明。可继承属性的继承从父元素流向子元素。

我可以直接使用分词器和树构建器吗?

是的 — Tokenizer.tokenize() 输出标准的 token 流,TreeBuilder.run() 执行树构建,parse_html() 将整个管道封装为一次调用。

我该如何处理 URL 和字符编码?

URL.parse() 和 URL.can_parse() 提供 WHATWG 风格的 URL 处理,并使用 URLSearchParams 处理查询字符串。对于原始字节,detect_encoding() 返回编码、置信度以及解码后的文本。

已知限制

是否有任何 API 已存在但未实现?

有少量成员已声明但目前不可用,包括 CSSRule.type、CSSRule.css_text 和 HTMLImageElement.decode。知识模型中的 limitations.md 文件会跟踪这些;请避免依赖它们。

该库会渲染页面或转换为其他格式吗?

不。当前版本侧重于解析、DOM 操作、CSS 样式计算、布局结构、URL 和编码。它不提供格式转换或图像/PDF 渲染。

在解析过程中会自动执行 JavaScript 吗?

不。解析从不运行脚本。脚本求值必须显式通过 JSContext 进行并且需要用户同意,模块加载由 ModuleRegistry 和 ModuleLoadPolicy 控制。

另请参阅

 中文