在node里,cheeriojs这类的库对于html的解析与操作非常方便,熟悉jQuery的用户使用起来基本没有什么负担。Golang里也有Goquery这样优秀的库,提供了类似的书写体验。有了它们,我们在项目中需要用到对html文档进行处理,比如html网页内容抓取时,极大地减轻了我们的工作。
相比于Node和Golang,RUST这类的库相对要欠缺一些,虽然也有scraper/select这样的crate存在,但对于习惯于jQuery这类库写法的人来说,总觉得书写有时候会有些繁琐不够直观。因此这才有了开发`Visdom`的念头。Vis 有视图和访问的意思,dom 有 DOM 模型的意思,这和库的主要功能意义比较贴近。
在Visdom里,基本实现了在Server端所能支持的所有css选择器功能,当然也包括jQuery支持的`:contains`选择器等。另外,Visdom还有个很大的特性是支持了对文本节点的选取和操作功能,能通过它对文本节点做很多更改操作,这表示能通过它来很方便地把一段文本替换为一段html,因此用它来做html的混淆也是很方便的。
在经过多个版本的迭代后,Visdom的基本功能也完全实现,测试用例也已基本全覆盖,希望能给有这方面需求的人带来帮助。
最后,贴一下项目地址:https://github.com/fefit/visdom
欢迎有使用的、或有类似需求的不吝提供宝贵意见,或者PR,更喜~
有疑问加站长微信联系(非本文作者)