Skip to content

legado.dom.parse / free

DOM 解析 API 基于 scraper(底层 html5ever / WHATWG HTML5 规范),采用句柄机制避免跨 JS↔Rust 边界序列化 DOM 树。

legado.dom.parse

解析 HTML 字符串,返回文档句柄。

js
legado.dom.parse(html) → string  // 文档句柄,如 "D0"
参数类型说明
htmlstringHTML 字符串

句柄格式

类型格式示例
文档句柄"D{id}""D0"
元素句柄"D{id}E{idx}""D0E3"

元素句柄可作为后续 selectselectAlltextattr 等函数的第一个参数,实现子选择。

legado.dom.free

释放文档句柄。

js
legado.dom.free(handle) → void

自动清理

free() 是可选的。即使不调用,线程结束后也会自动清理。但建议在处理完 DOM 后主动释放,减少内存占用。

完整示例

js
var html = legado.http.get('https://example.com/book/123');
var doc = legado.dom.parse(html);

// 使用文档句柄进行查询
var title = legado.dom.selectText(doc, 'h1.title');
var cover = legado.dom.selectAttr(doc, '.cover img', 'src');

// 子选择:先选容器,再在容器内查找
var nav = legado.dom.select(doc, '.pagination');
if (nav) {
  var nextUrl = legado.dom.selectAttr(nav, 'a.next', 'href');
}

// 释放
legado.dom.free(doc);

基于 MIT 许可发布