用rust抓取网页内容并生成Markdown代码

字号+ 编辑: 国内TP粉 修订: H波 来源: 2023-09-11 我要说两句(0)

使用reqwest和html2md库制作rust简单爬虫

先看一下main.rs源码

use std::fs;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let args = std::env::args();
    let mut url = "".to_string();
    for arg in args {
        url = arg;
    }

    let output = "rust.md";
    println!("抓取网页: {}", url);
    let body = reqwest::blocking::get(url)?.text()?;
    println!("从html转成markdown...");
    let md = html2md::parse_html(&body);
    fs::write(output, md.as_bytes()).unwrap();
    println!("转完的文档已存进 {}.", output);

    Ok(())
}

上述代码改了点东西, 注意是从std::env::args()方法中拿到命令行输入, 所以如果不输入网址会通过Result<T, E>类型返回错误。

通过cargo生成Cargo.toml之后补充一下依赖表

[package]
name = "scrape_url"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
reqwest = { version = "0.11", features = ["blocking"] }
html2md = "0.2"

如果不能通过编译, 检查一下你的网络环境...

阅完此文,您的感想如何?
  • 有用

    2

  • 没用

    0

  • 开心

    0

  • 愤怒

    0

  • 可怜

    0

1.如文章侵犯了您的版权,请发邮件通知本站,该文章将在24小时内删除;
2.本站标注原创的文章,转发时烦请注明来源;
3.交流群: PHP+JS聊天群

相关课文
  • 在rust/axum框架中操作redis

  • rust编译新的wasm项目操作流程(原文: 编译 Rust 为 WebAssembly)

  • rust视图模板库askama的使用

  • axum框架当中获取请求header, 和获取header指定字段的方法

我要说说
网上宾友点评