首页 > 解决方案 > 如何从我的 Rust 中的 HTML 中删除所有空格和 ASCII 元素,如“\n”?

问题描述

我正在写一些东西来从亚马逊提取产品数据,但我不确定如何规范 HTML 中的空白。

fn parse_html(html: std::string::String) {
    let fragment = Html::parse_fragment(&html);
    let product_title = Selector::parse(".s-line-clamp-2").unwrap();

    for title in fragment.select(&product_title) {
        let title_txt = title.text().collect::<Vec<_>>();
        println!("{:?}", title_txt);
    }
}

这可行,但我得到的数据是这样的["\n \n \n \n\n\n\n\n", "\n \n \n \n ", "Men\'s Sneakers", "\n \n \n \n \n", "\n\n \n"]

我只想要这个:["Men\'s Sneakers"]

标签: textrust

解决方案


您可以使用trim删除字符串末尾的空格并filter从向量中删除空字符串:

let title_txt = title
    .text()
    .map(|s| s.trim())
    .filter(|s| !s.is_empty())
    .collect::<Vec<_>>();

推荐阅读