我正在尝试获取 HTML 页面上的所有文本,不可见文本除外(例如:我不希望在 script/style/noscript 标记中使用文本)。
到目前为止,这是我想出的:
let parser = kuchiki::parse_html().one(content);
for child in parser.inclusive_descendants() {
if let Some(el) = child.as_element() {
let tag_name = &el.name.local;
if tag_name == "script" || tag_name == "style" || tag_name == "noscript" {
child.detach();
}
}
}
let text = parser.text_contents();
println!("{}", text);
这个想法是第一遍将删除任何script
, style
, 或noscript
标签。然后我可以打电话text_contents
来获取可见的文本。
但是,似乎text_contents
仍在返回内联 Javascript。
我是否误解了 Kuchiki/html5ever API?