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 delattr()函数 在Python中,delattr()函数用于删除对象的属性。它接受两个参数:第一个参数是要删除属性的对象,第二个参数是要删除的属性的名称。如果对象中不存在指定的属性,将会抛出AttributeError异常。
Python读写JSON文件、解析JSON JSON(JavaScript Object Notation)是一种轻量级的数据交换格式;本文将通过多个例子讲解在Python中如何读写json文件,如何解析JSON内容,以及如何将JSON对象与Python字典相互转换;
如何防止WiFi被蹭网 本文将从攻击者的角度详细讨论一下WiFi密码是如何被知晓的,以及如何防范WiFi被蹭,可以这么说,就算告诉你我家WiFi密码,你也蹭不了我的网;
kali终端改为一行显示 本文将探讨如何将Kali中的ZSH终端由双行显示切换为单行显示;
使用requests发送HTTP请求(GET和POST) 使用 Requests 发送HTTP请求非常简单;确保Python程序一开始导入了Requests模块:
在Rust中如何申请堆内存 在Rust中,可以使用 Box 关键字来在堆上分配内存。Box 是一个智能指针类型,它提供了所有权转移语义,可以将其值分配到堆上,然后通过变量引用进行访问。