raspa/src/selector.rs

43 lines
936 B
Rust
Raw Normal View History

2021-01-18 02:01:06 +00:00
pub trait SelectorBase {
fn html(&self) -> &str;
fn css(&self, css_selector: &'static str) -> Vec<Selector> {
let html = nipper::Document::from(self.html());
html.select(css_selector)
.iter()
.map(|element| Selector {
text: element.html().to_string(),
})
.into_iter()
.collect::<Vec<_>>()
}
fn content(&self) -> String {
let html = nipper::Document::from(self.html());
html.select("*")
.iter()
.map(|element| element.text().to_string())
.last()
.unwrap()
}
}
#[derive(Debug)]
pub struct Selector {
text: String,
}
impl SelectorBase for Selector {
fn html(&self) -> &str {
self.text.as_str()
}
}
impl Selector {
pub fn from_html(html: &'static str) -> Self {
Selector {
text: html.to_string(),
}
}
}