Web scraping in Rust con scraper

Mattepuffo's logo
Web scraping in Rust con scraper

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!


Condividi

Commentami!