解析xHTML源码的DLL组件AngleSharp介绍

所属分类: 网络编程 / ASP.NET 阅读数: 1260
收藏 0 赞 0 分享

AngleSharp是基于.NET(C#)开发的专门为解析xHTML源码的DLL组件。

项目地址:https://github.com/FlorianRappl/AngleSharp

我主要介绍是一些使用AngleSharp常用的方法,跟大家介绍,我会以脚本之家站点作为原型。 其它的类似组件有:

国内:Jumony
github地址: https://github.com/Ivony/Jumony

国外:Html Agility Pack
项目地址:http://htmlagilitypack.codeplex.com/

具体大家可以自行搜索对比三者的区别和性能。接下来咱们主要讨论主角是AngleSharp

引入AngleSharp至项目,用NuGet工具执行命令(其实我是在装逼。) Install-Package AngleSharp

在项目中添加引用Using AngleSharp

首先我们获取CnBlogs首页的HTML源代码

static public string GetHtml()
{
  HttpWebRequest myReq =
  (HttpWebRequest)WebRequest.Create("https://www.jb51.net");
  HttpWebResponse response = (HttpWebResponse)myReq.GetResponse();
  // Get the stream associated with the response.
  Stream receiveStream = response.GetResponseStream();

  // Pipes the stream to a higher level stream reader with the required encoding format. 
  StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8);

  return readStream.ReadToEnd();
}

获取jb51首页当前所有博客文章的标题

private static void Main(string[] args) { //找出所有文章标题 string cnblogsHtml = GetHtml();

  //加载HTML
  var document = DocumentBuilder.Html(cnblogsHtml);
  //这里必须要使用== 不能使用Equals
  var titleItemList = document.All.Where(m => m.ClassName == "titlelnk");
  int iIndex = 1;
  foreach (var element in titleItemList)
  {
    Console.WriteLine(iIndex + ":" + element.InnerHtml);
    iIndex++;
  }
}

以上代码输出内容:

1:JNDI学习总结(三)——Tomcat下使用Druid配置JNDI数据源
2:我们前端是怎么跟设计师沟通的
3:MVC5+EF6 入门完整教程六
4:试议常用Javascript 类库中 throttle 与 debounce 辅助函数的区别
5:孤独的走过年轻
6:上周热点回顾(11.10-11.16)
7:Android动画-补间(Tween)动画
8:朴素贝叶斯算法的python实现
9:MVC三层级联方式
10:C# 标签(条码)的打印与设计(一)
11:OpenCASCADE Make Primitives-Box
12:基于solr实现hbase的二级索引
13:(十六)WebGIS中偏移补偿量引发的问题之探讨
14:javascript小游戏--生命游戏
15:Android动画-帧动画
16:C# Socket学习笔记一
17:lua表排序
18:ZooKeeper系列 第一篇:ZooKeeper快速入门
19:【插件开发】—— 9 编辑器代码分块着色-高亮显示!
20:华盛顿大学计算机视觉课程笔记(一)

官方有提供详细的文档和例子,大家可以去看一下。此插件最大的优势:支持输出Javascript、Linq语法、ID和Class选择器、动态添加节点。实为.NET开发之利器。

AngleSharp文档:https://github.com/FlorianRappl/AngleSharp/wiki/Documentation

AngleSharp例子(Demo):https://github.com/FlorianRappl/AngleSharp/wiki/Examples

更多精彩内容其他人还在看

.NET Core源码解析配置文件及依赖注入

这篇文章我们设计了一些复杂的概念,因为要对ASP.NET Core的启动及运行原理、配置文件的加载过程进行分析,依赖注入,控制反转等概念的讲解等
收藏 0 赞 0 分享

.NET Corek中Git的常用命令及实战演练

这篇文章将通过故事的形式从Git的历史谈起,并讲述Git的强大之处。然后通过实战演练教你如何在Github以及码云上托管我们的代码并进行代码的版本控制
收藏 0 赞 0 分享

Asp.Net Core WebAPI使用Swagger时API隐藏和分组详解

这篇文章主要给大家介绍了关于Asp.Net Core WebAPI使用Swagger时API隐藏和分组的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Asp.Net Core具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

如何利用FluentMigrator实现数据库迁移

这篇文章主要给大家介绍了关于如何利用FluentMigrator实现数据库迁移的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

ASP.NET Core利用Jaeger实现分布式追踪详解

这篇文章主要给大家介绍了关于ASP.NET Core利用Jaeger实现分布式追踪的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用ASP.NET Core具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

浅谈从ASP.NET Core2.2到3.0你可能会遇到这些问题

这篇文章主要介绍了ASP.NET Core2.2到3.0可能会遇到的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

详解.net core webapi 前后端开发分离后的配置和部署

这篇文章主要介绍了.net core webapi 前后端开发分离后的配置和部署,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

详解ASP.Net Core 中如何借助CSRedis实现一个安全高效的分布式锁

这篇文章主要介绍了ASP.Net Core 中如何借助CSRedis实现一个安全高效的分布式锁,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

.net 4.5部署到docker容器的完整步骤

这篇文章主要给大家介绍了关于.net 4.5部署到docker容器的完整步骤,文中通过示例代码介绍的非常详细,对大家学习或者使用.net4.5具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

.net core并发下线程安全问题详解

这篇文章主要给大家介绍了关于.net core并发下线程安全问题的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用.net core具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享
查看更多