Разбор CSS с помощью AngleSharp

Я пытаюсь проанализировать веб-страницу HTML и ее CSS с помощью AngleSharp. К сожалению, я нашел только устаревшие примеры для этого, и я изо всех сил пытаюсь найти актуальную реализацию.

В настоящее время я пытаюсь это:

  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;

Когда я пытаюсь получить доступ к таблицам стилей, он всегда возвращает пустой список. Как правильно анализировать CSS с помощью AngleSharp? Может быть, можно было бы включить пример в документы.

С Уважением


person BigTing    schedule 06.12.2019    source источник


Ответы (1)


Спасибо, что задали этот вопрос, и извините за устаревшую документацию, которая все еще летает.

AngleSharp не поставляется с CSS; вместо этого AngleSharp можно расширить за счет функций других библиотек. Одной из таких библиотек является AngleSharp.Css.

Как следует из названия, эта библиотека предоставляет возможности CSS.

Предполагая, что вы установили оба (AngleSharp и AngleSharp.Css) через NuGet, вы можете сделать:

  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

Надеюсь, это поможет!

person Florian Rappl    schedule 06.12.2019
comment
Да, это заставит меня начать! Большое спасибо! - person BigTing; 19.12.2019
comment
@FlorianRappl Не могли бы вы увидеть этот вопрос, пожалуйста, удалить все строки из таблицы HTML? - person Learner; 17.01.2020