AngleSharp OpenAsync возвращает пустое тело

Попытка разобрать HTML с помощью AngleSharp и столкнуться с проблемами с https://opensource.org/licenses/MS-PL

Следующий код возвращает '0' во время работы в Linqpad

var url = @"https://opensource.org/licenses/MS-PL";
var doc = await AngleSharp.BrowsingContext.New().OpenAsync(url);
doc.Body.ChildElementCount.Dump();

Я ожидаю, что полный HTML вернется как часть тела. Есть идеи?

2 ответа

Решение

При создании нового BrowsingContext без предоставления IConfiguration, он использует конфигурацию по умолчанию, которая не поддерживает загрузку документов. Вам нужно создать конфигурацию, которая это делает, и передать ее BrowsingContext.New,

var config = Configuration.Default.WithDefaultLoader();
var doc = await AngleSharp.BrowsingContext.New(config).OpenAsync(url);

Скорее всего, принятый ответ охватывает более 95% разработчиков, которые сталкиваются с этой проблемой. Однако сегодня я столкнулся с этой проблемой по другой причине.

При использовании AngleSharp, вы не можете открыть один и тот же ответ дважды с помощью. После успешного чтения ответа в первый раз вы каждый раз будете получать пустой документ. Решение здесь состоит в том, чтобы переписать свой код, чтобы вы не открывали один и тот же ответ дважды.

Другие вопросы по тегам