Как удалить все пробелы и элементы ASCII, такие как "\ n", из моего HTML в Rust? - PullRequest
2 голосов
/ 15 октября 2019

Я пишу что-то для извлечения данных о продуктах из Amazon, но я не уверен, как нормализовать пробелы в 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"]

1 Ответ

2 голосов
/ 15 октября 2019

Вы можете использовать trim для удаления пробелов из концов строк и filter для удаления пустых строк из вашего вектора:

let title_txt = title
    .text()
    .map(|s| s.trim())
    .filter(|s| !s.is_empty())
    .collect::<Vec<_>>();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...