使用 AngleSharp 解析 CSS
Parsing CSS with AngleSharp
我正在尝试使用 AngleSharp 解析 HTML 网页及其 CSS。可悲的是,我只找到了贬值的例子,我正在努力寻找最新的实现。
目前,我正在尝试这个:
var config = Configuration.Default.WithDefaultLoader(new LoaderOptions { IsResourceLoadingEnabled = true });
var context = BrowsingContext.New(config);
var address = "www.foo.com"
var document = await context.OpenAsync(address);
var styleSheets = document.styleSheets;
当我尝试访问样式表时,它总是 returns 一个空列表。使用 AngleSharp 解析 CSS 的正确方法是什么?也许可以在文档中包含一个示例。
此致
感谢您提出这个问题,对于一些仍在四处传播的过时文档感到抱歉。
AngleSharp 未附带 CSS;相反,AngleSharp 可以使用其他库的功能进行扩展。这些库之一是 AngleSharp.Css.
顾名思义,该库具有 CSS 功能。
假设您通过 NuGet 安装了两者(AngleSharp 和 AngleSharp.Css),您可以执行以下操作:
var config = Configuration.Default.WithDefaultLoader(new LoaderOptions { IsResourceLoadingEnabled = true }).WithCss();
var context = BrowsingContext.New(config);
var address = "http://www.example.com"; // any reason for dropping the protocol?
var document = await context.OpenAsync(address);
var sheet = document.QuerySelector<IHtmlLinkElement>("link[rel=stylesheet]")?.Sheet;
我使用了以下命名空间导入。
AngleSharp
AngleSharp.Dom
AngleSharp.Html.Dom
AngleSharp.Io
希望对您有所帮助!
我正在尝试使用 AngleSharp 解析 HTML 网页及其 CSS。可悲的是,我只找到了贬值的例子,我正在努力寻找最新的实现。
目前,我正在尝试这个:
var config = Configuration.Default.WithDefaultLoader(new LoaderOptions { IsResourceLoadingEnabled = true });
var context = BrowsingContext.New(config);
var address = "www.foo.com"
var document = await context.OpenAsync(address);
var styleSheets = document.styleSheets;
当我尝试访问样式表时,它总是 returns 一个空列表。使用 AngleSharp 解析 CSS 的正确方法是什么?也许可以在文档中包含一个示例。
此致
感谢您提出这个问题,对于一些仍在四处传播的过时文档感到抱歉。
AngleSharp 未附带 CSS;相反,AngleSharp 可以使用其他库的功能进行扩展。这些库之一是 AngleSharp.Css.
顾名思义,该库具有 CSS 功能。
假设您通过 NuGet 安装了两者(AngleSharp 和 AngleSharp.Css),您可以执行以下操作:
var config = Configuration.Default.WithDefaultLoader(new LoaderOptions { IsResourceLoadingEnabled = true }).WithCss();
var context = BrowsingContext.New(config);
var address = "http://www.example.com"; // any reason for dropping the protocol?
var document = await context.OpenAsync(address);
var sheet = document.QuerySelector<IHtmlLinkElement>("link[rel=stylesheet]")?.Sheet;
我使用了以下命名空间导入。
AngleSharp
AngleSharp.Dom
AngleSharp.Html.Dom
AngleSharp.Io
希望对您有所帮助!