程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 解析HTML利器AngleSharp介紹,html利器anglesharp

解析HTML利器AngleSharp介紹,html利器anglesharp

編輯:C#入門知識

解析HTML利器AngleSharp介紹,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選擇器、動態添加節點。實為.NET開發之利器。

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved