Nipper
A Rust crate for manipulating HTML with CSS selectors
Nipper based on HTML crate html5ever and the CSS selector crate selectors. You can use the jQuery-like syntax to query and manipulate an HTML document quickly. **Not only can query, but also can modify**. The project is written primarily in Rust, distributed under the Apache License 2.0 license, first published in 2020. Key topics include: css-selectors, html, html5ever, nipper, scraper.
Nipper
<div> <!-- Crates version --> <a href="https://crates.io/crates/nipper"> <img src="https://img.shields.io/crates/v/nipper.svg?style=flat-square" alt="Crates.io version" /> </a> <!-- Downloads --> <a href="https://crates.io/crates/nipper"> <img src="https://img.shields.io/crates/d/nipper.svg?style=flat-square" alt="Download" /> </a> <!-- docs.rs docs --> <a href="https://docs.rs/nipper"> <img src="https://img.shields.io/badge/docs-latest-blue.svg?style=flat-square" alt="docs.rs docs" /> </a> <a href="https://travis-ci.com/github/importcjj/nipper"> <img src="https://travis-ci.com/importcjj/nipper.svg?branch=master" alt="travis ci" /> </a> </div>A crate for manipulating HTML with Rust.
Nipper based on HTML crate html5ever and the CSS selector crate selectors. You can use the jQuery-like syntax to query and manipulate an HTML document quickly. Not only can query, but also can modify.

Example
Extract the hacker news.
rustuse nipper::Document; fn main() { let html = include_str!("../test-pages/hacker_news.html"); let document = Document::from(html); document.select("tr.athing").iter().for_each(|athing| { let title = athing.select(".title a"); let href = athing.select(".storylink"); println!("{}", title.text()); println!("{}", href.attr("href").unwrap()); println!(); }); }
Readability.
Related projects
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be
dual licensed as above, without any additional terms or conditions.
Contributors
Showing top 3 contributors by commit count.
