解析HTML利器AngleSharp介绍

解析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选择器、动态添加节点、支持Xpath语法。实为.NET开发之利器。

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

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

时间: 2024-08-10 21:12:11

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

web前端自动化测试利器puppeteer介绍

web前端自动化测试利器puppeteer介绍 Intro Chrome59(linux.macos). Chrome60(windows)之后,Chrome自带headless(无界面)模式很方便做自动化测试或者爬虫.但是如何和headless模式的Chrome交互则是一个问题.通过启动Chrome时的命令行参数仅能实现简易的启动时初始化操作.Selenium.Webdriver等是一种解决方案,但是往往依赖众多,不够扁平. Puppeteer是谷歌官方出品的一个通过DevTools协议控制h

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

Html Agility Pack下载地址:http://htmlagilitypack.codeplex.com/ Html Agility Pack 源码中的类大概有28个左右,其实不算一个很复杂的类库,但它的功能确不弱,为解析DOM已经提供了足够强大的功能支持,可以跟jQuery操作DOM媲美:) 基础类和基础方法介绍 Html Agility Pack最常用的基础类其实不多,对解析DOM来说,就只有HtmlDocument和HtmlNode这两个常用的类,还有一个 HtmlNodeCol

【Android开发经验】比Gson解析速度快10倍!——Json解析神器Jackson使用介绍

转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 在前面的两篇文章中,我们介绍了Json数据格式和系统自带Json以及Google的Gson项目,如果能学会这些东西,基本能满足工作需求了.但是,程序员都有追求极致效率的嗜好,在满足了基本需求之后,我们会考虑能不能再优化一下效率呢?当然!今天这篇文章要介绍的,就是在数据量比较大的时候,比Gson的解析效率高近10倍的Json数据解析框架- -Jackson! 下面是一个大神关于几个常见的Json数据的解析速

C#解析HTML利器-Html Agility Pack

今天刚开始做毕设....好吧,的确有点晚.我的毕设设计需要爬取豆瓣的电影推荐,于是就需要解析爬取下来的html,之前用Python玩过解析,但目前我使用的是C#,我觉得C#不比python差,有微软大大在,这个不需要担心,主要还是生态问题.查了下资料,发现Html Agility Pack是比较好的,当然还有其他的,我就不说了,主要使用它做的. 官网地址(可以自己去下载dll): http://html-agility-pack.net/select-nodes 参考:Html Agility

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

在iPhone开发中,XML的解析有很多选择,iOS SDK提供了NSXMLParser和libxml2两个类库,另外还有很多第三方类库可选,例如TBXML.TouchXML.KissXML.TinyXML和GDataXML.问题是应该选择哪一个呢? 解析 XML 通常有两种方式,DOM 和 SAX: DOM解析XML时,读入整个XML文档并构建一个驻留内存的树结构(节点树),通过遍历树结构可以检索任意XML节点,读取它的属性和值.而且通常情况下,可以借助XPath,直接查询XML节点. SAX

web性能测试的新利器 - Gatling 介绍

转载:http://www.51testing.com/html/10/26810-852956.html 最近发现了一个新的性能测试工具Gatling,貌似比Jmeter还好玩.这几天就先简单介绍一下. 该开源项目的地址是:https://github.com/excilys/gatling/wiki 第一步,让我们看看简单的入门 1. 下载 你可以选择下载 .tar.gz 或者 .zip 包:https://github.com/excilys/gatling/wiki/Downloads

go语言解析网页利器goquery使用教程(爬虫必备)

某些时候需要爬取网页中指定信息时,通常需要一些框架解析网页行成dom模型,然后来操作节点来获取相应的信息.在java中很显然就是Jsoup,而在Golang里,应该就是这个goquery了吧. goquery github地址 https://github.com/PuerkitoBio/goquery 安装 由于它依赖 Go语言的 net/html 包以及css选择库 cascadia, 因此我们要先手动安装net/html包,后者不需要我们手动安装. 运行 go get https://gi

终端、命令、shell解析器的简单介绍

①.接下来所有的命令需要在一个载体上执行,这个载体就叫做终端. ②.终端上所有命令都需要一个东西翻译解析一下,计算机才能理解并执行.这个翻译解析的东西叫SHELL解释器,RedHat和CentOS默认SHELL解释器叫:bash. ③.既然需要bash帮忙翻译解释相关命令,那么你所敲的命令必须符合它的语法,否则报错给你看. 格式: 命令 [-选项] 参数 命令:整条shell命令的主体. 选项:会影响或微调命令的行为,通常以"-"开头. 参数:命令作用的对象.   原文地址:https

工具 | 代码调试利器fiddle介绍

我们开发的系统运行在用户的环境上,为了保护我们的代码和提升性能,前端javascript是经过压缩的.压缩的代码难于定位,当前只有chrome对压缩的代码支持格式化,但是变量和函数简化后,定位依然困难. 使用fiddle可以在不替换环境javascript/CSS的情况下,使用本地未压缩javascript/CSS实现代码的调试.下面是我在开发中经常使用的功能,分享给大家. fiddle的配置 安装fiddle后,选中Tools下的如下菜单: 在打开的对话框中,勾选如下两项: 2. 让本地代码替