CsQuery:https ://github.com/jamietre/csquery
这是一个 .NET 4 jQuery 端口。摆脱非内容节点可以通过多种方式完成:将.Text
所有内容作为字符串抓取的方法;或过滤文本节点,例如
var dom = CQ.CreateFromUrl(someUrl);
// or var dom = CQ.Create(htmlText);
IEnumerable<string> allTextStrings = dom.Select("*")
.Contents()
.Where(el => el.NodeType == NodeType.TEXT_NODE)
.Select(el => el.NodeValue);
它的工作原理与 jQuery 相同,当然,除了您还拥有 .NET 框架和 LINQ 来让您的生活更轻松。Select
选择 DOM 中的所有节点,然后选择Contents
每个节点的所有子节点(包括文本节点)。CsQuery 就是这样;然后使用 LINQWhere
过滤器仅用于文本节点,并Select
从每个节点中获取实际文本。
这将包括很多空格,它会返回所有内容。如果您只是想要整个页面的文本块,只需
string text = dom.Select("body").Text();
会做的。该Text
方法合并空白,因此每条实际文本之间将有一个空格。