引用HtmlAgilityPack插件,可以用HtmlAgilityPack类,例子如下:
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教程, 再来尝试...
| XPath 表达式 | 描述 |
|---|---|
| nodename | 选取此节点的所有子节点。 |
| / | 从根节点选取。 |
| // | 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。 |
| . | 选取当前节点。 |
| .. | 选取当前节点的父节点。 |
| @ | 选取属性。 |