首页 > 代码库 > .Net Core HTML解析利器之HtmlAgilityPack

.Net Core HTML解析利器之HtmlAgilityPack

一 、HtmlAgilityPack简介

这是一个敏捷的HTML解析器,它构建了一个读/写DOM,并支持简单的XPATH或XSLT(实际上,你实际上并不了解XPATH和XSLT来使用它,不必担心)。它是一个.NET代码库,可以让您解析“出网”HTML文件。解析器非常宽容“现实世界”畸形的HTML。对象模型与提出的System.Xml非常相似,但对于HTML文档(或流)来说是非常相似的。

官网地址:http://html-agility-pack.net/

Git地址:https://github.com/zzzprojects/html-agility-pack

NuGet地址 :https://www.nuget.org/packages/HtmlAgilityPack/

命令:

Install-Package HtmlAgilityPack

二、HtmlWeb爬去网页示例:

1.使用Nuget包工具安装

技术分享

2.解析www.gongjuji.net首页列表项

//操作 逻辑 :
//1.获取col-md-4 的div 列表
//2.遍历col获取标题和链接

HtmlWeb web = new HtmlWeb();
HtmlDocument doc = web.Load("http://www.gongjuji.net");
string rowPath = "/html/body/div[2]/div[2]/div";
HtmlNodeCollection cols = doc.DocumentNode.SelectNodes(rowPath);
foreach (var item in cols)
{
    //解析 内部的 .thumbnail内容
    HtmlNode thumbnail = HtmlNode.CreateNode(item.InnerHtml);
    //获取h3的内容和a标签 的链接
    HtmlNode h3 = thumbnail.SelectSingleNode("//h3");
    Console.Write(h3.InnerText + ":     ");
    HtmlNode a = thumbnail.SelectSingleNode("//a");
    Console.WriteLine(a.Attributes["href"].Value);
}

技术分享

3.解析结果:

技术分享

 

跟多使用相关:

C# HTML解析工具HtmlAgilityPack使用实例(二)--Web页面 

C# HTML解析工具HtmlAgilityPack使用实例(一)

C# HTML解析工具HtmlAgilityPack使用简介

C# HTML解析工具HtmlAgilityPack XPath 模糊查询not()函数和contains()函数

.Net Core HTML解析利器之HtmlAgilityPack