rust提取网页中的链接

该篇文章演示了一个用Rust编写的程序,它依赖于reqwest库抓取网页内容,然后利用select库解析HTML,提取出所有a标签的href属性,从而获取网页中的链接。程序在Tokio运行环境中执行,具有异步处理能力。
摘要由CSDN通过智能技术生成

前言

获取某个网页中的链接, 只需要得到网页中所有a标签的href属性

依赖(Cargo.toml)

[package]
name = "links-extrack"
version = "0.1.0"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
error-chain = "0.12.4"
reqwest = "0.11.12"
select = "0.5.0"
tokio = { version = "1.21.2", features = ["full"] }

代码

use error_chain::error_chain;
use select::document::Document;
use select::predicate::Name;
// 错误处理
error_chain! {
    foreign_links{
        Reqerror(reqwest::Error);
        IoError(std::io::Error);
    }
}
#[tokio::main]
async fn main()->Result<()> {
    let res= reqwest::get("http://www.rust-lang.org/zh-CN/")
        .await?
        .text() // 获取文本
        .await?;
    Document::from(res.as_str())
        // 找到a标签
        .find(Name("a"))
        // 过滤得到带href属性的
        .filter_map(|n| n.attr("href"))
        .for_each(|x| println!("{}", x));
    Ok(())
}

运行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞鸟malred

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值