unhtml

Build status Crate version License: MIT Rust Docs

There are two trait in crate unhtml

The only method of FromHtml you should care about is fn from_html(html: &str) -> Result<Self, Error> and this method is implemented for all types implemented FromStr<E, T>

rust impl<E, T> FromHtml for T where E: std::error::Error + Send + Sync + 'static, T: FromStr<Err=E> { fn from_html(html: &str) -> Result<Self, Error> { Ok(T::from_str(html.trim())?) } }

You can implement FromHtml automatically for struct by crate unhtml_derive Crate version

VecFromHtml is implemented for Vec<T> where T: FromHtml by default

rust impl<T> VecFromHtml for Vec<T> where T: FromHtml { type Elem = T; }

As FromHtml is implemented for u8 by default

rust use unhtml::scraper::Html; use unhtml::VecFromHtml; let html = Html::parse_fragment(r#" <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div id="test"> <a href="1"></a> <a href="2"></a> <a href="3"></a> </div> </body> </html> "#); let results = Vec::<u8>::from_attr("#test > a", "href", html.root_element()).unwrap(); assert_eq!(1u8, results[0]); assert_eq!(2u8, results[1]); assert_eq!(3u8, results[2]);