专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

在C#中使用AngleSharp解析Html

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/2/14 1:18:14       共计:3606 浏览

一、AngleSharp简介


AngleSharp 是一个 .NET 的 HTML 解析器库。支持输出 Javascript、Linq 语法、ID 和 Class 选择器、动态添加节点、支持 Xpath 语法。比HtmlAgilityPack更好用一点。


官网地址:AngleSharp - Documentation


源码地址:https://github.com/AngleSharp/AngleSharp


Nuget地址:https://github.com/AngleSharp/AngleSharp


特点:


支持html5,支持Dom解析、生成、查询


支持css选择器查找


支持js 解析运行


   便携式的(使用.NET标准2.0)

   符合标准(与常绿浏览器完全相同)

   出色的性能(在大多数情况下优于类似的解析器)

   可扩展性(使用您自己的服务进行扩展)

   有用的抽象(类型助手,类似于构造的jQuery)

   功能齐全的DOM(您所知道的所有列表、迭代器和事件)

   表格提交(可随时登录)

   导航(浏览上下文就像浏览器选项卡控制它。净的!)。

   LINQ增强了(使用带有DOM元素的LINQ,自然没有包装器)


二、AngleSharp安装


1.使用命令


Install-Package AngleSharp


2.使用Nuget包管理


三、AngleSharp使用案例


1.html生成


   //创建一个html的解析器

   var parser = new HtmlParser();

   //使用解析器解析文档

   var document = parser.ParseDocument("<h1>Some example source</h1><p>This is a paragraph element");

   

   Console.WriteLine("输出整个文档的html:");

   Console.WriteLine(document.DocumentElement.OuterHtml);

   

   //创建一个p元素

   var p = document.CreateElement("p");

   //给p元素添加文本

   p.TextContent = "This is another paragraph.";

   

   Console.WriteLine("在body中插入一个P元素");

   document.Body.AppendChild(p);

   

   Console.WriteLine("输出整个文档的html:");

   Console.WriteLine(document.DocumentElement.OuterHtml);




2.html查询,Dom检索,根据Css选择器检索


   //创建解析器

   var parser = new HtmlParser();

   //创建本地文档

   var document = parser.ParseDocument("<ul><li>First item<li>Second item<li class='blue'>Third item!<li class='blue red'>Last item!</ul>");

   

   //选取class='blue'的li集合,使用linq

   var blueListItemsLinq = document.All.Where(m => m.LocalName == "li" && m.ClassList.Contains("blue"));

   

   //选取class='blue'的li集合,使用css选择器

   var blueListItemsCssSelector = document.QuerySelectorAll("li.blue");

   

   Console.WriteLine("两种选择结果 ...");

   

   Console.WriteLine();

   Console.WriteLine("LINQ:");

   

   foreach (var item in blueListItemsLinq)

       Console.WriteLine(item.TextContent);

   

   Console.WriteLine();

   Console.WriteLine("CSS:");

   

   foreach (var item in blueListItemsCssSelector)

       Console.WriteLine(item.TextContent);




3.网络页面抓取


   string page = NetHelper.Get("http://www.jnqianle.cn");

   var parser = new HtmlParser();

   var dom = parser.ParseDocument(page);

   

   //var itemList = dom.QuerySelectorAll(".casecenter .list .item");

   //foreach (var item in itemList)

   //{

   //    Console.WriteLine(item.TextContent.Trim());

   //}

   

   var listDom = dom.QuerySelector(".casecenter .list");

   

   var titleList = listDom.QuerySelectorAll(".subtitle");

   foreach (var item in titleList)

   {

       Console.WriteLine(item.TextContent);

   }

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:C#使用AngleSharp库解析html文档 | ·下一条:在C#中.Net Core使用AngleSharp安装解析html的方法及示例代码

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有