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

分类: 计算机技术
推荐阅读:
shell中运行上一条命令 在Linux系统下,一条简单的命令即可实现运行上一条刚刚运行过的命令;
如何查询电脑电池型号 要查询笔记本电脑的电池型号,可通过以下步骤进行:为方便查看结果,在桌面空白处右键单击,开打终端;也可使用命令提示符;
Python sum()函数 在 Python 中,sum() 函数用于对给定的可迭代对象进行求和操作。
Golang实现线性搜索算法(Linear Search) 本文将使用Go语言实现线性搜索算法(Linear Search);
C语言中 i++ 和 ++i 的区别 在C语言中,++ 运算符也叫递增运算符,只需要一个操作数,属于一元运算符;本文将讨论前缀++运算符和后缀++运算符的区别,以及符号优先级的问题;
Go语言获取命令行参数 本文将在Go语言中使用标准库 os 获取命令行参数;Go语言的 os 库中有一个 Args 属性,可通过它读取程序运行时的命令行参数;