.NET Core HtmlAgilityPack HTML解析利器

北大青鸟大学城校区logo 北大青鸟大学城校区
招生简章校园环境师资力量就业明星招生问答软件工程师北京大学学历学员项目联系我们 报名通道

免费在线咨询通道>>

免费在线报名通道>>

北大青鸟报名电话
当前位置:北大青鸟 > IT培训 > .net培训 >

.NET Core HtmlAgilityPack HTML解析利器

标签:   分类:.net培训

最近学习.NETCore ,想把自己之前的一个项目升级到 .NET Core。发现HtmlAgilityPack 没法进行引用,遂自己做了些修改,可以运行在 .NET Core 中。现在分享出来,也是为 .NET Core 做一些贡献。

.NET Core版 HtmlAgilityPack HTML解析利器,目前是 HtmlAgilityPack Core RC2

HtmlAgilityPack 介绍

HtmlAgilityPack是一个基于.Net的、第三方免费开源的微型类库,主要用于在服务器端解析html文档。

GitHub:

HtmlAgilityPack中定位节点基本上都用Xpath表达式,Xpath表达式的参考文档可见:http://www.w3school.com.cn/xpath/xpath_syntax.asp 。

下面是几个简单使用说明:
 

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’]”);.NET Core 使用HtmlAgilityPack

新建一个控制台应用程序

然后添加 HtmlAgilityPack 引用,这里直接添加项目引用。
 

下面来讲解一下简单使用。以博客园新闻区为示例,进行解析。

publicstaticvoidMain(stringargs)
 
{
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

 
HtmlWebweb=newHtmlWeb;

 
vardoc=web.LoadFromWebAsync("http://news.cnblogs.com/").Result;

 
varnodes=doc.DocumentNode.SelectNodes("//div[@id='news_list']/div/div[2]/h2/a");

 
foreach(variteminnodes)
{
Console.WriteLine($"标题:{item.InnerText} 地址:{item.Attributes["href"].Value}");
}
Console.ReadKey;
}

HtmlAgilityPack .NET Core RC2

GitHub:

学IT,就读北大青鸟,支持你成为人人尊重的人才,高薪好工作,就是属于你!详情咨询电话  010-80146691   010-80146519   欢迎你的随时咨询!火热咨询中.......

若有疑问请拨打北大青鸟咨询热线:010-80146691或点击免费在线咨询!
  • xml地图 网站地图 招生简章 合作企业 学员项目 联系我们
  • 关闭窗口