用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指定字段的方法

我要說說
網上賓友點評