91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#如何使用AngleSharp庫解析html文檔

發布時間:2022-06-14 13:47:15 來源:億速云 閱讀:296 作者:iii 欄目:開發技術

這篇“C#如何使用AngleSharp庫解析html文檔”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“C#如何使用AngleSharp庫解析html文檔”文章吧。

一、簡介

AngleSharp是一個.NET庫,使您能夠解析基于尖括號的超文本,例如HTML,SVG和MathML,該庫還支持未經驗證的XML,AngleSharp的一個重要方面是CSS也可以解析。 
AngleSharp與類似的庫(例如HtmlAgilityPack)相比的優勢在于:

  • 公開的DOM使用的是W3C官方指定的API,即,甚至在AngleSharp中也可以使用querySelectorAll之類的東西。

  • 解析器還使用HTML 5.1規范,該規范定義了錯誤處理和元素校正。

AngleSharp庫專注于標準合規性,交互性和可擴展性。因此,它為使用C#的Web開發人員提供了從在任何現代瀏覽器中使用DOM所獲得的所有可能性。

C#如何使用AngleSharp庫解析html文檔

這個簡單的示例將使用Wikipedia的網站進行數據檢索。

var config = Configuration.Default.WithDefaultLoader();
var address = "https://en.wikipedia.org/wiki/List_of_The_Big_Bang_Theory_episodes";
var context = BrowsingContext.New(config);
var document = await context.OpenAsync(address);
var cellSelector = "tr.vevent td:nth-child(3)";
var cells = document.QuerySelectorAll(cellSelector);
var titles = cells.Select(m => m.TextContent);

二、使用AngleSharp生成自動縮進格式化的html方法

1、操作DOM示例

//創建一個(可重用)解析器前端
var parser = new HtmlParser();
//html DOM節點
var source = "
<h2>Some example source</h2>
<p>This is a paragraph element</p>
";

//解析源文件
var document = parser.Parse(source);
//創建P標簽
var p = document.CreateElement("p");
p.TextContent = "This is another paragraph.";
//添加到DOM
document.Body.AppendChild(p);
//返回完整html
var html = document.DocumentElement.OuterHtml;
ViewData["html"] = html;

效果展示

C#如何使用AngleSharp庫解析html文檔

2、更改標簽屬性

給標簽添加自定義屬性

var parser = new HtmlParser();
 //為以下源代碼生成HTML DOM
var document = parser.Parse("
<ul>
<li>First element</li>
<li>Second element</li>
<li>third</li>
<li class='bla'>Last</li>
</ul>
");
//獲取所有li元素并將test屬性設置為值測試
var elements = document.QuerySelectorAll("li").Attr("test", "test");
 //元素仍然包含所有li元素
ViewData["html"] = document.DocumentElement.OuterHtml;

效果展示

C#如何使用AngleSharp庫解析html文檔

C#如何使用AngleSharp庫解析html文檔

3、使用AngleSharp生成html代碼自動縮進格式化

var parser = new HtmlParser();
var document = parser.ParseDocument(text);
using (var writer = new StringWriter())
{
    document.ToHtml(writer, new PrettyMarkupFormatter
                            {
                                Indentation = "\t",
                                NewLine = "\n"
                            });
    var indentedText = writer.ToString();
}

4、使用AngleSharp下載獲取html代碼

var requester = new DefaultHttpRequester("Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36");
requester.Headers.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8");
requester.Headers.Add("Referer", "");
requester.Headers.Add("Accept-Language", "zh-Hans-CN,zh-Hans;q=0.8,en-US;q=0.5,en;q=0.3");
var context = BrowsingContext.New(Configuration.Default.WithLocaleBasedEncoding().WithDefaultLoader().WithDefaultCookies().With(requester));
//根據虛擬請求/響應模式創建文檔
var document = context.OpenAsync(url).Result;
using (var writer = new StringWriter())
{
    document.ToHtml(writer, new PrettyMarkupFormatter
                            {
                                Indentation = "\t",
                                NewLine = "\n"
                            });
    var indentedText = writer.ToString();
}

5、爬取豆瓣美女圖片

新建一個Belle類用于保存獲取的圖片信息

/// 
/// 解析html
/// 
public class Belle
{
        /// 
        /// 標題
        /// 
        public string Title { get; set; }
        /// 
        /// 圖片地址
        /// 
        public string ImageUrl { get; set; }
}

獲取html并解析

// 設置配置以支持文檔加載
var config = Configuration.Default.WithDefaultLoader();
// 豆瓣地址
var address = "https://www.dbmeinv.com/dbgroup/show.htm?cid=4";
// 請求豆辨網
var document =  BrowsingContext.New(config).OpenAsync(address);
// 根據class獲取html元素
var cells = document.Result.QuerySelectorAll(".panel-body li");
// We are only interested in the text - select it with LINQ
List list = new List();
foreach (var item in cells)
{
     var belle = new Belle
     {
         Title= item.QuerySelector("img").GetAttribute("title"),
         ImageUrl= item.QuerySelector("img").GetAttribute("src")
     };
     list.Add(belle);
 }
ViewData["html"] = list;

以上就是關于“C#如何使用AngleSharp庫解析html文檔”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

瓦房店市| 西乌珠穆沁旗| 广水市| 滕州市| 咸宁市| 绥芬河市| 胶南市| 集贤县| 东宁县| 历史| 姚安县| 琼海市| 龙南县| 盐池县| 中江县| 新巴尔虎右旗| 阿鲁科尔沁旗| 海兴县| 铅山县| 灵山县| 阿克陶县| 绥宁县| 彰化市| 南丰县| 永州市| 江孜县| 西宁市| 临泽县| 玛曲县| 阿瓦提县| 花莲县| 尼勒克县| 青河县| 黄石市| 田林县| 桐城市| 克东县| 浪卡子县| 临武县| 建昌县| 金昌市|