解析xHTML源碼的DLL組件AngleSharp介紹
AngleSharp是基于.NET(C#)開發(fā)的專門為解析xHTML源碼的DLL組件。
項(xiàng)目地址:https://github.com/FlorianRappl/AngleSharp
我主要介紹是一些使用AngleSharp常用的方法,跟大家介紹,我會(huì)以腳本之家站點(diǎn)作為原型。 其它的類似組件有:
國(guó)內(nèi):Jumony
github地址: https://github.com/Ivony/Jumony
國(guó)外:Html Agility Pack
項(xiàng)目地址:http://htmlagilitypack.codeplex.com/
具體大家可以自行搜索對(duì)比三者的區(qū)別和性能。接下來咱們主要討論主角是AngleSharp
引入AngleSharp至項(xiàng)目,用NuGet工具執(zhí)行命令(其實(shí)我是在裝逼。) Install-Package AngleSharp
在項(xiàng)目中添加引用Using AngleSharp
首先我們獲取CnBlogs首頁(yè)的HTML源代碼
static public string GetHtml() { HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create("http://www.dbjr.com.cn"); 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首頁(yè)當(dāng)前所有博客文章的標(biāo)題
private static void Main(string[] args) { //找出所有文章標(biāo)題 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++; } }
以上代碼輸出內(nèi)容:
1:JNDI學(xué)習(xí)總結(jié)(三)——Tomcat下使用Druid配置JNDI數(shù)據(jù)源 2:我們前端是怎么跟設(shè)計(jì)師溝通的 3:MVC5+EF6 入門完整教程六 4:試議常用Javascript 類庫(kù)中 throttle 與 debounce 輔助函數(shù)的區(qū)別 5:孤獨(dú)的走過年輕 6:上周熱點(diǎn)回顧(11.10-11.16) 7:Android動(dòng)畫-補(bǔ)間(Tween)動(dòng)畫 8:樸素貝葉斯算法的python實(shí)現(xiàn) 9:MVC三層級(jí)聯(lián)方式 10:C# 標(biāo)簽(條碼)的打印與設(shè)計(jì)(一) 11:OpenCASCADE Make Primitives-Box 12:基于solr實(shí)現(xiàn)hbase的二級(jí)索引 13:(十六)WebGIS中偏移補(bǔ)償量引發(fā)的問題之探討 14:javascript小游戲--生命游戲 15:Android動(dòng)畫-幀動(dòng)畫 16:C# Socket學(xué)習(xí)筆記一 17:lua表排序 18:ZooKeeper系列 第一篇:ZooKeeper快速入門 19:【插件開發(fā)】—— 9 編輯器代碼分塊著色-高亮顯示! 20:華盛頓大學(xué)計(jì)算機(jī)視覺課程筆記(一)
官方有提供詳細(xì)的文檔和例子,大家可以去看一下。此插件最大的優(yōu)勢(shì):支持輸出Javascript、Linq語(yǔ)法、ID和Class選擇器、動(dòng)態(tài)添加節(jié)點(diǎn)。實(shí)為.NET開發(fā)之利器。
AngleSharp文檔:https://github.com/FlorianRappl/AngleSharp/wiki/Documentation
AngleSharp例子(Demo):https://github.com/FlorianRappl/AngleSharp/wiki/Examples
相關(guān)文章
ASP.NET編程簡(jiǎn)單實(shí)現(xiàn)生成靜態(tài)頁(yè)面的方法【附demo源碼下載】
這篇文章主要介紹了ASP.NET編程簡(jiǎn)單實(shí)現(xiàn)生成靜態(tài)頁(yè)面的方法,較為詳細(xì)的分析了asp.net生成靜態(tài)頁(yè)面的步驟與相關(guān)操作技巧,并附帶相關(guān)實(shí)例源碼供讀者下載參考,需要的朋友可以參考下2017-07-07.Net下二進(jìn)制形式的文件(圖片)的存儲(chǔ)與讀取詳細(xì)解析
以下是對(duì).Net下二進(jìn)制形式的文件(圖片)的存儲(chǔ)與讀取進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下2013-09-09.NET6?ConfigurationManager的實(shí)現(xiàn)及使用方式
這篇文章主要介紹了.NET6?ConfigurationManager的實(shí)現(xiàn),我們上面展示的這一部分的ConfigurationManager代碼,其實(shí)就是替代了原來的ConfigurationBuilder類的功能,需要的朋友可以參考下2021-12-12解決.NET?Core企業(yè)微信openapi回調(diào)地址請(qǐng)求不通過的問題
這篇文章介紹了解決.NET?Core企業(yè)微信openapi回調(diào)地址請(qǐng)求不通過的問題,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06解決ASP.NET中Type.GetType方法總返回空的問題
今天做練習(xí)的時(shí)候用到了Type.GetType方法。。 可是他總返回null。。2008-03-03.Net Core中使用Autofac替換自帶的DI容器的示例
Autofac比Core中自帶的DI功能強(qiáng)大的多,比如:屬性注入、基于名稱注入、子容器、自定生存期管理、遲緩初始化,本文就詳細(xì)的來介紹一下.Net Core Autofac替換DI容器,感興趣的可以了解一下2021-06-06asp.net DataSet轉(zhuǎn)換成josn并輸出示例
如何將DataSet轉(zhuǎn)換成josn并輸出,這是很多新手朋友們遇到的問題,下面有個(gè)不錯(cuò)的示例,希望對(duì)大家有所幫助2014-01-01使用ajax局部刷新gridview進(jìn)行數(shù)據(jù)綁定示例
很多用戶都有這樣需求,比如:點(diǎn)擊按鈕,刷新 GridView 中的數(shù)據(jù),而不是這個(gè)頁(yè)面刷新。使用簡(jiǎn)單的 XMLHttpRequest就可以直接實(shí)現(xiàn)2014-02-02