C# 解析网页HTML用HtmlAgilityPack插件

引用HtmlAgilityPack插件,能够用HtmlAgilityPack类,例子以下:html

var doc = new HtmlAgilityPack.HtmlDocument();
// 网页源代码,若有缺乏,就补充完整.
if (html.IndexOf("<html>") >= 0 && html.IndexOf("</html>") > 0) doc.LoadHtml(html);
else
{
     if (html.IndexOf("<body>") >= 0 && html.IndexOf("</body>") > 0) doc.LoadHtml("<html>" + html + "</html>");
     else doc.LoadHtml("<html><body>" + html + "</body></html>");
}
// 得到解析文档根节点
var docNode = doc.DocumentNode;
// 使用XPath语法表达式,Select 查找出一个符合条件的节点
var title = docNode.SelectSingleNode("//div[@id='divContent']//h2[@class='left_title']");
// title 标题所在的节点,判断是否存在
if (title == null) return;
// 若是存在,就继续处理...

复制代码

SelectSingleNode("使用XPath语法"), 不会用的, 请先看下XPath教程, 再来尝试...node

XPath 表达式 描述
nodename 选取此节点的全部子节点。
/ 从根节点选取。
// 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。
. 选取当前节点。
.. 选取当前节点的父节点。
@ 选取属性。
相关文章
相关标签/搜索