Web scraping in Rust con scraper
scraper è una libreria per Rust che ci consente di eseguire il web scraping di HTML.
Non effettua una richiesta HTTP però, quindi abbiamo bisogno di una libreria apposita.
In questo articolo usiamo reqwest.
Qui sotto tutte le dipendenze per il codice che useremo:
[dependencies]
reqwest = { version = "0.12.12", features = ["json", "blocking"] }
scraper = "0.22.0"
tokio = { version = "1.43.0", features = ["full"] }
Qui sotto il codice di esempio:
use reqwest;
use scraper::{Html, Selector};
use std::error::Error;
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
let url = "https://www.mattepuffo.com";
let response = reqwest::get(url).await?.text().await?;
let document = Html::parse_document(&response);
let h1_selector = Selector::parse("h1").unwrap();
for element in document.select(&h1_selector) {
let text = element.text().collect::<Vec<_>>().join(" ");
println!("{}", text.trim());
}
Ok(())
}
Enjoy!
rust cargo reqwest scraper
Commentami!