解析HTML利器AngleSharp介绍

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

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

我主要介绍是一些使用AngleSharp常用的方法,跟大家介绍,我会以http://www.cnblogs.com站点作为原型。 其它的类似组件有:
国内:Jumony
github地址:https://github.com/Ivony/Jumony
作者Blog地址:http://www.cnblogs.com/Ivony/
国外: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("http://www.cnblogs.com");
    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();
    }
  • 获取Cnblogs首页当前所有博客文章的标题

    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:华盛顿大学计算机视觉课程笔记(一)

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

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

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

解析HTML利器AngleSharp介绍的更多相关文章

  1. web前端自动化测试/爬虫利器puppeteer介绍

    web前端自动化测试/爬虫利器puppeteer介绍 Intro Chrome59(linux.macos). Chrome60(windows)之后,Chrome自带headless(无界面)模式很 ...

  2. Python 爬虫利器 Selenium 介绍

    Python 爬虫利器 Selenium 介绍 转 https://mp.weixin.qq.com/s/YJGjZkUejEos_yJ1ukp5kw 前面几节,我们学习了用 requests 构造页 ...

  3. IO模式调查利器blkiomon介绍

    本文链接地址: IO模式调查利器blkiomon介绍 blkiomon 是blktrace工具包带的一个方便用户了解IO情况的工具, 由于blktrace太专业,需要了解的IO协议栈的东西太多,blk ...

  4. Web调试利器fiddler介绍

    转载:http://blog.chinaunix.net/uid-27105712-id-3738821.html 最近在使用fiddler,发现这个真是非常最犀利的web调试工具,笔者这里强烈推荐给 ...

  5. 黄聪:C#类似Jquery的html解析类HtmlAgilityPack基础类介绍及运用

    Html Agility Pack下载地址:http://htmlagilitypack.codeplex.com/ Html Agility Pack 源码中的类大概有28个左右,其实不算一个很复杂 ...

  6. 【转】C#类似Jquery的html解析类HtmlAgilityPack基础类介绍及运用

    Html Agility Pack下载地址:http://htmlagilitypack.codeplex.com/ Html Agility Pack 源码中的类大概有28个左右,其实不算一个很复杂 ...

  7. C#解析HTML利器-Html Agility Pack

    今天刚开始做毕设....好吧,的确有点晚.我的毕设设计需要爬取豆瓣的电影推荐,于是就需要解析爬取下来的html,之前用Python玩过解析,但目前我使用的是C#,我觉得C#不比python差,有微软大 ...

  8. Java上的jQuery?解析HTML利器—Jsoup

    也许大家有过在java运行平台上解析html的经历,通常的方式是将HTML以XML的形式进行结点解析,调用java本身的xml解析类库.这样的方式很容易理解并且很方便,但习惯用jQuery的各位是否在 ...

  9. iOS-数据解析XML解析的多种平台介绍

    在iPhone开发中,XML的解析有很多选择,iOS SDK提供了NSXMLParser和libxml2两个类库,另外还有很多第三方类库可选,例如TBXML.TouchXML.KissXML.Tiny ...

随机推荐

  1. android 中组件继承关系图,一目了然

    View继承关系图 Adapter适配器继承关系图 Activity继承关系图

  2. 访问XML文件中的信息

  3. stixel-net绘制指标图

    需解决问题: 1.离散点进行平滑曲线画法 https://blog.csdn.net/cdqn10086/article/details/70143616 def draw_curve(x,y,img ...

  4. HashMap面试知识点

    HashMap的工作原理是近年来常见的Java面试题. 几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道Hashtable和HashMap之间的区别,那么为何这道面试题如 ...

  5. Android学习笔记_70_一个应用程序启动另一个应用程序的Activity

    第一种(我自己写的) :之前在网上看来一些,很多不是我要的可以启动另外一个应用程序的主Activity. //这些代码是启动另外的一个应用程序的主Activity,当然也可以启动任意一个Activit ...

  6. papers-06-07

    A simple neural network module for relational reasoning Visual Interaction Networks 今天被这两篇文章的工作刷屏,说实 ...

  7. iOS:常用属性、方法

    前言:一段时间没接触,很容易就忘记以前的知识.专写一篇,供几个月没接触,拿起却忘记了. 0.宏定义.系统相关 0-1).宏定义.规范 变量: //全局变量通常用小写g来提示 int gNumb=0; ...

  8. iOS开发CGRectGetMidX. CGRectGetMidY.CGRectGetMinY. CGRectGetMaxY. CGRectGetMinX. CGRectGetMaxX的使用

    [iOS开发]iOS开发CGRectGetMidX. CGRectGetMidY.CGRectGetMinY. CGRectGetMaxY. CGRectGetMinX. CGRectGetMaxX的 ...

  9. D - 湫湫系列故事——减肥记II

    虽然制定了减肥食谱,但是湫湫显然克制不住吃货的本能,根本没有按照食谱行动! 于是,结果显而易见… 但是没有什么能难倒高智商美女湫湫的,她决定另寻对策——吃没关系,咱吃进去再运动运动消耗掉不就好了? 湫 ...

  10. Django中ORM常用字段类型及参数

    常用字段: <1> CharField 字符串字段, 用于较短的字符串. CharField 要求必须有一个参数 maxlength, 用于从数据库层和Django校验层限制该字段所允许的 ...