Rust爬取网页上的所有链接

180it 2023-03-05 PM 639℃ 0条

要在Rust中爬取网页上的所有链接,可以使用一些Rust的库,例如reqwest和scraper。

添加依赖
要在rust中使用reqwest和scraper,需先在Cargo.toml文件中添加依赖:

[dependencies]
reqwest = { version = "0.11", features = ["blocking","json"] }
scraper = { version = "0.14" }

代码实现
首先,使用reqwest库来获取网页的HTML内容,然后使用scraper库来解析HTML并获取所有链接;

use reqwest::blocking::Client;
use scraper::{Html, Selector};

fn main() {

let client = Client::new();
let response = client.get("https://www.baidu.com").send().unwrap();
let html = response.text().unwrap();
    let document = Html::parse_document(&html);
    let selector = Selector::parse("a").unwrap();

    for element in document.select(&selector) {
        if let Some(link) = element.value().attr("href") {
            println!("{}", link);
        }
    }
}

这个示例中,我们首先使用Html::parse_document函数将HTML文本解析为一个scraper::Html类型的文档。然后,我们使用Selector::parse函数创建一个选择器来选择所有元素。最后,我们使用for循环遍历所有匹配的元素,并使用element.value().attr("href")方法获取链接。

原创地址: https://www.perfcode.com/p/scrape-all-links-on-a-webpage-using-rust.html

支付宝打赏支付宝打赏 微信打赏微信打赏

如果文章或资源对您有帮助,欢迎打赏作者。一路走来,感谢有您!

标签: none

Rust爬取网页上的所有链接