AngleSharp是基于.NET(C#)開發的專門為解析xHTML源碼的DLL組件。
項目地址:https://github.com/FlorianRappl/AngleSharp
我主要介紹是一些使用AngleSharp常用的方法,跟大家介紹,我會以錯新站長站站點作為原型。 其它的類似組件有:
國內:Jumony
github地址: https://github.com/Ivony/Jumony
國外: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://m.survivalescaperooms.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();}獲取jb51首頁當前所有博客文章的標題
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-Box12:基于solr實現hbase的二級索引13:(十六)WebGIS中偏移補償量引發的問題之探討14:javascript小游戲--生命游戲15:Android動畫-幀動畫16:C# Socket學習筆記一17:lua表排序18:ZooKeeper系列 第一篇:ZooKeeper快速入門19:【插件開發】—— 9 編輯器代碼分塊著色-高亮顯示!20:華盛頓大學計算機視覺課程筆記(一)
官方有提供詳細的文檔和例子,大家可以去看一下。此插件最大的優勢:支持輸出Javascript、Linq語法、ID和Class選擇器、動態添加節點。實為.NET開發之利器。
AngleSharp文檔:https://github.com/FlorianRappl/AngleSharp/wiki/Documentation
新聞熱點
疑難解答