Skip to main content

Module static_element

Module static_element 

Source
Expand description

静态(离线)元素解析(后端无关,基于 scraper):StaticElements_ele/s_eles/table。 静态元素 [StaticElement]:对应 DrissionPage 的“静态元素“(s_ele/s_eles)。

与实时 Element 不同,静态元素是把某一时刻的 HTML 快照 离线解析后(基于 scraper/html5ever)在内存 DOM 上做查询与读取——不再与浏览器通信, 因此读取大量字段时极快,适合“抓到页面后批量解析“的爬虫场景。

定位:DP 的 @attr / text: / tag: / CSS 等常见写法均支持;显式 xpath: 走内置 XPath 1.0 子集求值器(覆盖 ////*[n]/[last()]@a="v"contains(...)and/or/not 等),不支持的轴/语法会报错并提示改用实时 Tab::ele

tab.get("https://example.com").await?;
let h1 = tab.s_ele("tag:h1").await?;      // 解析当前 HTML,取第一个 h1
println!("{}", h1.text()?);
for a in tab.s_eles("tag:a").await? {      // 批量:所有链接
    println!("{:?} -> {:?}", a.text()?, a.attr("href")?);
}
// 也可离线解析任意 HTML 字符串(例如监听到的响应体):
let root = StaticElement::parse("<ul><li>a</li><li>b</li></ul>")?;

Structs§

StaticElement
一个静态(离线解析)元素句柄。克隆代价低(共享同一份已解析文档)。