57个版本 (2个稳定版)
1.0.1 | 2024年4月18日 |
---|---|
1.0.0 | 2023年9月11日 |
0.5.10 | 2023年4月17日 |
0.5.9 | 2022年11月29日 |
0.4.8 | 2021年3月27日 |
153 在 网页编程 中排名
每月151次下载
在 7 个包 中使用
285KB
7K SLoC
Visdom
🏠 一个用Rust编写的HTML解析和节点选择及变异库,使用类似于jQuery的API,省略了仅在浏览器中工作的部分(例如渲染和事件相关方法)。
它不仅有助于进行HTML抓取,还提供了用于变异text
节点的有用API,因此您可以将HTML与脏HTML片段混合,并让网页抓取器远离。💖
用法
use visdom::Vis;
use visdom::types::BoxDynError;
fn main() -> Result<(), BoxDynError>{
let html = r##"
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
</head>
<body>
<nav id="header">
<ul>
<li>Hello,</li>
<li>Vis</li>
<li>Dom</li>
</ul>
</nav>
</body>
</html>
"##;
// load html
let root = Vis::load(html)?;
let lis = root.find("#header li");
let lis_text = lis.text();
println!("{}", lis_text);
// will output "Hello,VisDom"
Ok(())
}
特性标志
从v0.5.0版本开始,visdom添加了一些特性标志以支持不同用法的条件编译。
特性 | 描述 | API | 配置 |
---|---|---|---|
销毁 |
当您不需要删除或清除元素时,可以忽略此特性标志。 | .remove() .empty() (IElementTrait) remove_child() clone() |
visdom= {版本=xxx,特性= ["销毁"]} |
插入 |
当您不需要变异DOM时,可以忽略此特性标志。 | append() append_to() prepend() prepend_to() insert_after() after() insert_before() before() replace_with() |
visdom= {版本=xxx,特性= ["插入"]} |
文本 |
当您不需要修改TextNode时,可以忽略此功能标志。 | .texts() .texts_by() texts_by_rec() |
visdom= {版本=xxx,特性= ["文本"]} |
完整 |
当您需要上述所有API时,可以开启此功能标志。 | - | visdom= {版本=xxx,特性= ["完整"]} |
依赖项
- HTML解析器:https://github.com/fefit/rphtml
- HTML实体编码和解码:https://github.com/fefit/htmlentity
问题 & 建议 & 错误?
如果您有任何问题、错误或好建议,请通过问题向我们报告。
许可证
依赖项
~2.9–4.5MB
~86K SLoC