Visdom [![Build Status](https://travis-ci.org/fefit/visdom.svg?branch=main)](https://travis-ci.com/github/fefit/visdom) [![crates.io](https://img.shields.io/crates/v/visdom.svg)](https://crates.io/crates/visdom) [![tag](https://img.shields.io/github/v/tag/fefit/visdom.svg?sort=semver)](https://github.com/fefit/visdom/tags) [![codecov](https://codecov.io/gh/fefit/visdom/branch/main/graph/badge.svg)](https://codecov.io/gh/fefit/visdom) [![Crates download](https://img.shields.io/crates/d/visdom.svg)](https://crates.io/crates/visdom) [![GitHub license](https://img.shields.io/github/license/fefit/visdom)](https://github.com/fefit/visdom/blob/main/LICENSE)

[API Document](https://github.com/fefit/visdom/wiki/API-Document)     [Online Demos](http://visdom.suchjs.com/#doc)     [Performance](https://github.com/fefit/visdom/blob/main/performance/README.md)     [中文 API 文档](https://github.com/fefit/visdom/wiki/%E4%B8%AD%E6%96%87API%E6%96%87%E6%A1%A3)     [更新文档](https://github.com/fefit/visdom/blob/main/CHANGELOG.md)

:house: A html parsing & node selecting and mutation library written in Rust, using APIs similar to jQuery, left off the parts thoes only worked in the browsers(e.g. render and event related methods). It's not only helpful for the working with html scraping, but also have useful APIs to mutate `text` nodes, so you can use it for mixing your html with dirty html fragement, and keep the web scrapers away. :sparkling_heart:

Usage

```rust use visdom::Vis; use visdom::types::BoxDynError;

fn main() -> Result<(), BoxDynError>{ let html = r##"

"##; // load html let root = Vis::load(html)?; let lis = root.find("#header li"); let listext = lis.text(); println!("{}", listext); // will output "Hello,VisDom" Ok(()) } ```

Try it online

Depedencies

Questions & Advices & Bugs?

Welcome to report Issue to us if you have any question or bug or good advice.

License

MIT License.