调用AngleSharp解析html源码
By
admin
at 2022-05-27 • 0人收藏 • 1009人看过
AngleSharp 是一个 .NET 库,它使您能够解析基于尖括号的超文本,例如 HTML、SVG 和 MathML。该库还支持未经验证的 XML。AngleSharp 的一个重要方面是 CSS 也可以被解析。包含的解析器建立在官方 W3C 规范之上。这会为给定的源代码生成一个完美可移植的 HTML5 DOM 表示,并确保与常青浏览器中的结果兼容。还有标准的 DOM 功能,例如querySelector或querySelectorAll适用于树遍历。
AngleSharp 是完全按照标准来的,可以玩 css selector,想玩 Xpath 也可以, 然而上一篇文章里htmlagilitypack 就只能 xpath 了.
官方网站: https://anglesharp.github.io

import console;
import dotNet;
var dll = dotNet.load("\AngleSharp.dll");
var AngleSharpParser = dll.import("AngleSharp.Html.Parser")
var parser = AngleSharpParser.HtmlParser();
var document = parser.ParseDocument("<h1>Some example source</h1><p>This is a paragraph element");
console.log("输出整个文档的html:");
console.log( document.DocumentElement.OuterHtml );
//创建⼀个p元素
var p = document.CreateElement("p");
//给p元素添加⽂本
p.TextContent = "This is another paragraph.";
console.log( "在body中插入一个P元素" );
document.Body.AppendChild(p);
console.log( document.DocumentElement.OuterHtml )
console.pause(true);测试工程下载:
2 个回复 | 最后更新于 2022-05-27
登录后方可回帖
厉害了
利用Css Selector获取指定元素:
import console; import dotNet; var dll = dotNet.load("\AngleSharp.dll"); var AngleSharpParser = dll.import("AngleSharp.Html.Parser") var parser = AngleSharpParser.HtmlParser(); var document = parser.ParseDocument("<ul><li>First item<li>Second item<li class='blue'>Third item!<li class='blue red'>Last item!</ul>"); //选取class='blue'的li集合 var blueListItemsCssSelector = document.QuerySelectorAll("li.blue"); //集合长度 console.log( blueListItemsCssSelector.Length ); //遍历 for(i=1;blueListItemsCssSelector.Length;1){ //console.log( blueListItemsCssSelector[1].OuterHtml ) //console.log( blueListItemsCssSelector[1].InnerHtml ) console.log( blueListItemsCssSelector[i].TextContent ); } console.pause(true);单选元素:
var blueLi = document.QuerySelector("li.blue"); console.log( blueLi.TextContent );其中通过DOM选择器得到的对象有如下可用方法: