在写爬虫的时候,少不了处理HTML的。一般少不了通过正则表达式,或者SubString的方式把字符串截取。最近发现一个类:HtmlAgilityPack可以像操作XML一样的去操作HTML。
使用方式
使用Nuget直接安装下载。
代码实例
public void Example(string strHtml)
{
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(strHtml);
//获得一个单独的div
var singleNode = doc.DocumentNode.SelectSingleNode("//div[@class='mp-tickets']");
//获得多个div的Node
var multiNodes = singleNode..SelectNodes("div[@class='mp-tickettype']");
foreach(var node in multiNodes)
{
//可以执行其他的操作
}
}
注意事项
SelectSingleNode 和SelectNodes 统称为Select方法
Select方法的参数可以输入标签名或者标签名带class的如
SelectSingleNode("div");
SelectSingleNode("div[@class='className']");
如果标签以//开头
SelectSingleNode("//div[@class='className']");
则会进行模糊的检索,如果不带//只会匹配一级字标签的内容。在需要精确的搜索的时候,最好精确控制,否则会出错。
更多的操作方式,仍需摸索解锁