我正在尝试用AngleSharp解析一个超文本标记语言网页及其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的正确方法是什么?也许可以在文档中包含一个示例。
问候
发布于 2019-12-07 04:30:28
感谢您提出这个问题,并为仍在四处传播的一些过时的文档感到抱歉。
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希望这能有所帮助!
https://stackoverflow.com/questions/59219106
复制相似问题