htmler is a html parsing library with css selectors.
This is a fork of scraper, and provides higher-level encapsulation and a more consistent interface.
```rs use htmler::Html;
let html = r#"
let document = Html::parsedocument(html); let fragment = Html::parsefragment("
```rs use htmler::{Html, Selector};
let html = r#"
let fragment = Html::parse_fragment(html); let selector = Selector::new("li");
for element in fragment.select(&selector) { assert_eq!("li", element.value().name()); } ```
```rs use htmler::{Html, Selector};
let html = r#"
let fragment = Html::parsefragment(html); let ulselector = Selector::new("ul"); let li_selector = Selector::new("li");
let ul = fragment.select(&ulselector).next().unwrap(); for element in ul.select(&liselector) { assert_eq!("li", element.value().name()); } ```
```rs use htmler::{Html, Selector};
let fragment = Html::parse_fragment(r#""#); let selector = Selector::new(r#"input[name="foo"]"#);
let input = fragment.select(&selector).next().unwrap(); asserteq!("bar", input.getattribute("value")); ```
```rs use htmler::{Html, Selector};
let fragment = Html::parse_fragment("
let h1 = fragment.select(&selector).next().unwrap();
asserteq!("Hello, world!
", h1.html());
asserteq!("Hello, world!", h1.inner_html());
```
```rs use htmler::{Html, Selector};
let fragment = Html::parse_fragment("
let h1 = fragment.select(&selector).next().unwrap();
let text = h1.text().collect::
assert_eq!(vec!["Hello, ", "world!"], text); ```