先看一下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"
如果不能通過編譯, 檢查一下你的網路環境...