diff --git a/skelbiu-lt-scraper/src/skelbiu_lt_listing.rs b/skelbiu-lt-scraper/src/skelbiu_lt_listing.rs index cd46c93..9bb335c 100644 --- a/skelbiu-lt-scraper/src/skelbiu_lt_listing.rs +++ b/skelbiu-lt-scraper/src/skelbiu_lt_listing.rs @@ -4,11 +4,16 @@ use common_scraper::Listing; pub struct SkelbiuLtListing { url: String, title: String, + description: String, } impl SkelbiuLtListing { - pub fn new(url: String, title: String) -> Self { - Self { url, title } + pub fn new(url: String, title: String, description: String) -> Self { + Self { + url, + title, + description, + } } fn get_title(&self) -> &str { diff --git a/skelbiu-lt-scraper/src/skelbiu_lt_listing_scraper.rs b/skelbiu-lt-scraper/src/skelbiu_lt_listing_scraper.rs index 46f575a..f397d60 100644 --- a/skelbiu-lt-scraper/src/skelbiu_lt_listing_scraper.rs +++ b/skelbiu-lt-scraper/src/skelbiu_lt_listing_scraper.rs @@ -4,13 +4,18 @@ use scraper::Selector; pub struct SkelbiuLtListingScraper { title_selector: Selector, + description_selector: Selector, } impl SkelbiuLtListingScraper { - pub fn new(title_selector: String) -> Self { + pub fn new(title_selector: String, description_selector: String) -> Self { let title_selector = Selector::parse(title_selector.as_str()).unwrap(); + let description_selector = Selector::parse(description_selector.as_str()).unwrap(); - Self { title_selector } + Self { + title_selector, + description_selector, + } } } @@ -26,11 +31,19 @@ impl ListingScraper for SkelbiuLtListingScraper { .unwrap() .text() .collect::() - .replace("\\n", "") .trim() .to_string(); - return Some(SkelbiuLtListing::new(listing_url, title)); + let description = html + .select(&self.description_selector) + .next() + .unwrap() + .text() + .collect::() + .trim() + .to_string(); + + return Some(SkelbiuLtListing::new(listing_url, title, description)); } None diff --git a/skelbiu-lt-scraper/src/skelbiu_lt_scraper.rs b/skelbiu-lt-scraper/src/skelbiu_lt_scraper.rs index bdffbb0..aaef619 100644 --- a/skelbiu-lt-scraper/src/skelbiu_lt_scraper.rs +++ b/skelbiu-lt-scraper/src/skelbiu_lt_scraper.rs @@ -28,6 +28,7 @@ impl CommonScrapper for SkelbiuLtScraper { // TODO: Refactor this to use DI & clone Box::new(SkelbiuLtListingScraper::new( "h1[itemprop=name]".to_string(), + ".description".to_string(), )) }