解析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. 让免费版MarkdownPad2使用Pro版本的功能

    让免费版MarkdownPad2使用Pro版本的功能 找到配置文件 启用Markdown扩展模式 Markdown处理器:Github风格 语法检查设置 自动保存设置 找到配置文件 一般在用户的数据目 ...

  2. Python:函数的命名空间、作用域与闭合函数

    1,参数陷阱 如果默认参数的只是一个可变数据类型,那么每一次调用的时候,如果不传值就共用这个数据类型的资源. 2,三元运算 c=a if a>b else b#如果a>b返回a,否则,返回 ...

  3. 【转】DDMS中线程状态的说明

    因为最近的工作中需要关注APP中的线程,在DDMS中可以查看某个应用的线程: 可以看到每个线程都有自己的status属性,那不同的status分别代表什么情况呢? running – executin ...

  4. springmvc时间(date)无法转入后台(@DateTimeFormat+@JsonFormat(GMT+8))

    spring时间(date)无法转入后台 Type Status Report Description The server cannot or will not process the reques ...

  5. js 跳转整理

    js方式的页面跳转1.window.location.href方式    <script language="javascript" type="text/java ...

  6. jdbc连接各种数据库字符串

    oracle driverClass:oracle.jdbc.driver.OracleDriver url:jdbc:oracle:thin:@127.0.0.1:1521:dbname mysql ...

  7. 菜鸟笔记 -- Chapter 1 计算机从0到1

    进入20世纪第二个十年,计算机已经成为生活中一个必不可小的工具了,但我们真的了解计算机吗?计算机有哪些部分构成?不同的计算机又可以做什么样的事情呢?我们的PC和用来做加减乘除的计算器都属于计算机范畴吗 ...

  8. 对AFNetworking的二次封装

    HttpTool.h #import <Foundation/Foundation.h> #import <UIKit/UIKit.h> typedef void(^HttpS ...

  9. php第四节(循环和函数)

    <?php //循环有 for(){}.有while(){} 有do{}while().foreach(){}循环 //1.for(){} for($i=0;$i<=9;$i++){ ec ...

  10. 内存分配---FF、BF、WF三种算法

    动态分区分配是根据进程的实际需要,动态的为之分配内存空间.而在实现可变分区分配时,将涉及到分区分配中 所用的数据结构.分区分配算法和分区的分配与内存回收的过程. 分区分配中的数据结构:(1)描述空闲块 ...