使用AngleSharp解析CSS

a11xaf1n  于 2023-04-23  发布在  其他
关注(0)|答案(1)|浏览(149)

我正在尝试用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;

当我试图访问styleSheets时,它总是返回一个空列表。用AngleSharp解析CSS的正确方法是什么?也许可以在文档中包含一个示例。
问候

azpvetkf

azpvetkf1#

感谢您提出这个问题,并为一些过时的文档感到抱歉。
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

希望有帮助!

相关问题