Advertisement
rileyw13

Rust error handling

Dec 27th, 2020
832
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Rust 1.16 KB | None | 0 0
  1. use scraper::{Html, Selector};
  2.  
  3. #[tokio::main]
  4. pub async fn main() -> Result<(), Box<dyn std::error::Error>> {
  5.     // the starting place for our scraper
  6.     let news_homepage = "https://news.ycombinator.com/news";
  7.  
  8.     let response = reqwest::get(news_homepage)
  9.         .await?;
  10.  
  11.     let news_homepage_html = Html::parse_document(&response.text().await?);
  12.  
  13.     let link_selector = Selector::parse("a[href]").unwrap();
  14.     let img_selector = Selector::parse("img[src]").unwrap();
  15.  
  16.     for link_element in news_homepage_html.select(&link_selector) {
  17.         // follow each link
  18.         let next_page = link_element.value().attr("href").unwrap();
  19.  
  20.         println!("INFO: Visiting link {:}", next_page);
  21.         let next_page_response = reqwest::get(next_page).await;
  22.         let next_page_response = match next_page_response {
  23.             Ok(response) => response,
  24.             // Err(error) => println!("WARN: Problem getting the url '{}'. \
  25.             //     The error was {:?}", next_page, error),
  26.             Err(error) => panic!("WARN: Problem getting the url '{}'. \
  27.                The error was {:?}", next_page, error),
  28.         };
  29.     }
  30.  
  31.     Ok(())
  32. }
  33.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement