Rust爬取网页上的所有链接

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

添加依赖

要在rust中使用reqwestscraper,需先在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函数创建一个选择器来选择所有<a>元素。最后,我们使用for循环遍历所有匹配的元素,并使用element.value().attr("href")方法获取链接。

原创内容,如需转载,请注明出处;

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

分类: 计算机技术
推荐阅读:
Python bin()函数 bin()是 Python 内置函数之一,它可以将一个整数转换为二进制字符串表示。
PySide6 使用QIcon为按钮添加图标 在PySide6中为按钮添加图标,可以使用QIcon类来加载图标文件,并使用QPushButton类的setIcon()方法将图标设置给按钮;
Python compile()函数 在 Python 中,compile() 是一个内置函数,用于将字符串或AST对象编译成字节码或代码对象。编译后的字节码或代码对象可以在多个 Python 解释器中执行,从而避免每次执行时重新编译代码。
C语言isblank()函数:判断字符是否为空白字符 isblank()函数是C语言中的一个标准库函数,用于判断一个字符是否为标准空白字符(即空格' '和水平制表符'\t');如果参数c是一个标准空白字符,则返回true,否则返回false;
Go语言获取操作系统类型 在Go语言中,你可以使用runtime包来获取操作系统类型。具体来说,你可以使用runtime.GOOS来获取操作系统类型的字符串表示。
使用Rust serde处理文件(读取、保存) 本文使用serde_json为例;展示Rust serde如何读取文件、保存文件;