常见问题
许可与开源
什么许可证用于 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 控制。