如何从网页上获取文本

本文关键字:获取 取文本 网页 | 更新日期: 2023-09-27 18:14:41

我想用c#从网页上获取文本。
我不想要HTML,我想要网页上真正的文本。比如我输入" <b>cake</b> ",我想要的是蛋糕,而不是标签。

如何从网页上获取文本

使用HTML敏捷包库。

这是解析HTML的一个很好的库,根据您的需要使用以下代码:

    HtmlAgilityPack.HtmlWeb web = new HtmlAgilityPack.HtmlWeb();
    HtmlAgilityPack.HtmlDocument doc = web.Load("Yor Path(local,web)"); 
    var result=doc.DocumentNode.SelectNodes("//body//text()");//return HtmlCollectionNode
    foreach(var node in result)
    {
        string AchivedText=node.InnerText;//Your desire text
    }

看情况。如果您的应用程序使用WebBrowser组件下载网页,那么该组件将在后台自动为您进行解析(就像Internet Explorer一样)。只需遍历DOM树并提取所需的文本。你会发现HtmlElement。InnerText属性特别有用

您可以使用正则表达式剥离标签,例如2(一个简单的例子):

// You can import System.Text.RegularExpressions for convenience, of course.
System.Text.RegularExpressions.Regex tag = new System.Text.RegularExpressions.Regex("'<.+?'>");
myHTML = tag.Replace(myHTML, String.Empty);
但是如果需要检索大量结构良好的数据,那么最好使用HTML库1。(如果网页是XHTML,最好使用System.Xml类。)

1例如http://htmlagilitypack.codeplex.com/。
2如果您试图从JavaScript中获取数据,或者如果数据在元素的属性中并且包含尖括号,则可能会产生意想不到的副作用。您还需要接受转义序列,如&amp;