Asp.net解析HTML并利用XPATH分析提取内容
HTML解析器有很多种,最常用的是HtmlAgilityPack和SgmlReader(http://sourceforge.net/projects/dekiwiki/files/SgmlReader/)。
这里使用的是HtmlAgilityPack:
下载地址:http://htmlagilitypack.codeplex.com
同时官网提供了一个自动生成xpath路径的工具HAP Explorer。
关于XPATH表达式以及相关教程参见:XPath表达式精选[更新中...]
获取HTML的方式有很多种:
1.通过HttpWebRequest类可实现模拟登录并获取页面信息
2.用第三方控件模拟登录,参见:正在做简历搬家功能,分享一下研究过程
使用方法:
首先引用HtmlAgilityPack的DLL文件 using HtmlAgilityPack;
根据XPath提取内容的函数:
/// <summary>
/// 根据XPATH获取筛选的字符串
/// </summary>
/// <param name="content">需要提取HTML的内容</param>
/// <param name="xpath">XPath表达式</param>
/// <param name="separ">分隔符</param>
/// <returns>提取后的内容</returns>
public static string GetStrByXPath(string content, string xpath, string separ)
{
HtmlDocument doc1 = new HtmlDocument();
doc1.LoadHtml(content);
HtmlNodeCollection repeatNodes = doc1.DocumentNode.SelectNodes(xpath);
string text = "";
//循环节点
foreach (HtmlNode node in repeatNodes)
{
text += node.InnerText + separ;
}
return text;
}