使用 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

希望对您有所帮助!