HtmlAgilityPack 删除script、style以及注释标签

foreach(var script in doc.DocumentNode.Descendants("script").ToArray())
    script.Remove();
foreach(var style in doc.DocumentNode.Descendants("style").ToArray())
    style.Remove();

foreach (var comment in doc.DocumentNode.SelectNodes("//comment()").ToArray())
    comment.Remove();//新增的代码

string innerText = doc.DocumentNode.InnerText;

解释:HtmlAgilityPack是使用XPath语法,"//comment()"在XPath中表示“所有注释节点”,关于XPath的详细用法请参考XPath的资料。

其他可能有用的技术点:
1、获取网页title:doc.DocumentNode.SelectSingleNode("//title").InnerText;
解释:XPath中“//title”表示所有title节点。SelectSingleNode用于获取满足条件的唯一的节点。


2、获取所有的超链接:doc.DocumentNode.Descendants("a")


3、获取name为kw的input,也就是相当于getElementsByName():
            var kwBox = doc.DocumentNode.SelectSingleNode("//input[@name='kw']");

解释:"//input[@name='kw']"也是XPath的语法,表示:name属性等于kw的input标签。

原文地址:https://www.cnblogs.com/hycms/p/4959773.html