GitPedia

Nipper

A Rust crate for manipulating HTML with CSS selectors

From importcjj·Updated June 6, 2026·View on GitHub·

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

A crate for manipulating HTML with Rust.

<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>

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.

nipper-logo

Example

Extract the hacker news.

rust
use 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.

examples/readability.rs

License

Licensed under either of

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.

View all contributors on GitHub →

This article is auto-generated from importcjj/nipper via the GitHub API.Last fetched: 6/27/2026