从网站下载并获取 HTML 代码

ehs*_*ird 0 parsing rust web

我需要从某个网页下载 HTML 代码。完成这项任务的最佳方法是什么?据我所知,现在很少有适用于 Rust 的 Web 框架,而 hyper 是大多数人使用的框架吗?但是在搜索它的文档后,我找不到方法。我得到的最接近的是这个

extern crate hyper;

use hyper::Client;

fn main() {
    let client = Client::new();
    let res = client.get("http://www.bloomberg.com/")
        .send()
        .unwrap();

    println!("{:?}", res);
}
Run Code Online (Sandbox Code Playgroud)

但它返回Response,它似乎不包含来自 HTML 正文的任何​​代码。

Luk*_*odt 6

注意:这个答案已经过时了!

我没有时间在每个超级版本中更新它。但是请参阅我对一个非常相关的问题的回答:如何将网站的内容下载到字符串中?


它有点隐藏:该Response类型实现了 trait Read。的一种方法Readread_to_string将所有内容读入 a String。这是获得身体的简单方法。

extern crate hyper;

use hyper::Client;
use std::io::Read;

fn main() {
    let client = Client::new();
    let mut res = client.get("http://www.bloomberg.com/")
        .send()
        .unwrap();
    let mut body = String::new();
    res.read_to_string(&mut body).expect("failed to read into string");
    println!("{}", body);
}
Run Code Online (Sandbox Code Playgroud)

目前 Rustdoc(Rust 的 HTML 文档)有点误导,因为 Rust 初学者认为 trait 实现没有添加任何重要的功能。这不是真的,所以最好注意一下。但是,超级文档可能会更好......