如何从网页上获取文字?

我想从C#中的网页上获取文本。
我不想获取HTML,我想要从网页上删除真实文本。 就像我输入“ cake ”一样,我想要蛋糕,而不是标签。

使用HTML Agility Pack库。

这是解析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中获取数据,或者数据位于元素属性内并包含尖括号,则可能会产生意外的副作用。 你还需要接受像&这样的转义序列&