【问题标题】:How to get only plain text from HTML using C#?如何使用 C# 仅从 HTML 中获取纯文本?
【发布时间】:2021-08-21 01:27:04
【问题描述】:

大家好。


我正在尝试创建一个应用程序来查找字符串中最常用的单词。 在我的例子中,一个字符串就是 HTML。 我已经可以从 URI 中获取 HTML。例如“https://www.bbc.com/news/world-middle-east-57327591”。


var url = "https://www.bbc.com/news/world-middle-east-57327591";
var httpClient = new HttpClient();
var html = await httpClient.GetStringAsync(url);

Html 变量与源代码中的 HTML 相同。那很好。

但是如何摆脱所有样式、脚本和附加信息。并且只获取某个字符串变量中的纯文本?

我希望我的应用程序不仅适用于 BBC html,而且适用于我可以在网络上获得的每个 HTML。 我有一个想法,我应该从 <div>,<p>,<b>,<i>,<a> 这样的每个元素中获取文本,因为并非所有文本都存储在 <p> 中。

【问题讨论】:

标签: c# html parsing httpclient html-agility-pack


【解决方案1】:

根据This 的回答,尝试以下操作:


var url = "https://www.bbc.com/news/world-middle-east-57327591";
var httpClient = new HttpClient();
var html = await httpClient.GetStringAsync(url);
//Create a regex pattern that selects all html tag elements
string pattern = @"<(.|\n)*?>";
//Replace all tag elements found using that regex with  nothing 
return Regex.Replace(htmlString, pattern, string.Empty);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-07
    • 1970-01-01
    • 1970-01-01
    • 2021-06-16
    • 1970-01-01
    • 2016-12-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多