解析xHTML源碼的DLL組件AngleSharp介紹
AngleSharp是基于.NET(C#)開發(fā)的專門為解析xHTML源碼的DLL組件。
項(xiàng)目地址:https://github.com/FlorianRappl/AngleSharp
我主要介紹是一些使用AngleSharp常用的方法,跟大家介紹,我會(huì)以腳本之家站點(diǎn)作為原型。 其它的類似組件有:
國內(nèi):Jumony
github地址: https://github.com/Ivony/Jumony
國外: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首頁的HTML源代碼
static public string GetHtml()
{
HttpWebRequest myReq =
(HttpWebRequest)WebRequest.Create("http://m.fzitv.net");
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首頁當(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 類庫中 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)勢:支持輸出Javascript、Linq語法、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)文章
WPF實(shí)現(xiàn)左右移動(dòng)(晃動(dòng))動(dòng)畫效果
這篇文章主要為大家詳細(xì)介紹了WPF實(shí)現(xiàn)左右移動(dòng)或晃動(dòng)動(dòng)畫效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12
asp.net通過js實(shí)現(xiàn)Cookie創(chuàng)建以及清除Cookie數(shù)組的代碼
asp.net Cookie創(chuàng)建以及清除Cookie數(shù)組2010-03-03
在.net中用CheckBoxList實(shí)現(xiàn)單選
用CheckBoxList實(shí)現(xiàn)單選的原因是我覺得CheckBoxList控件頁面展示效果要好看一些,需要的朋友可以參考下2014-02-02
ASP.NET中用js取CheckBoxList中值的方法實(shí)例
用腳本取CheckBoxList中的值,并用"|"將其分開,之后將取到的值放入文本框,返回?cái)?shù)據(jù)庫做添加或者修改2013-07-07
asp.net BasePage類+Session通用用戶登錄權(quán)限控制
判斷用戶是否登錄,常用的方法就是通過Session來控制。2010-05-05
利用FastReport傳遞圖片參數(shù)在報(bào)表上展示簽名信息的實(shí)現(xiàn)方法
這篇文章主要介紹了利用FastReport傳遞圖片參數(shù)在報(bào)表上展示簽名信息,其中主要注意的是,我們傳遞的圖片數(shù)據(jù)需要采用Base64String的格式才能正常傳遞和展示,本文通過圖文實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-10-10
ASP.NET Core依賴注入系列教程之控制反轉(zhuǎn)(IoC)
這篇文章主要給大家介紹了關(guān)于ASP.NET Core依賴注入系列教程之控制反轉(zhuǎn)(IoC)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-11-11
ScriptManager.RegisterStartupScript()方法在ajax頁面無效的解決方法
ScriptManager.RegisterStartupScript()方法在ajax頁面無效的解決方法2010-03-03
asp.net 處理F5刷新頁面重復(fù)提交頁面的一個(gè)思路
當(dāng)提交完一個(gè)頁面后,如果我們?cè)俅吸c(diǎn)擊F5刷新該頁面的話,會(huì)彈出一個(gè)提示,提示我們?nèi)绻^續(xù),則會(huì)重新發(fā)送提交我們剛才提交的內(nèi)容,要是類似付款或一次性的操作,我們不應(yīng)該這樣操作,否則會(huì)造成重復(fù)提交的問題。2010-02-02

