Страницы

Поиск по вопросам

вторник, 31 марта 2020 г.

Парсинг безымянных блоков в AngleSharp

#c_sharp #парсер #anglesharp


Подскажите пожалуйста как из этого блока выбрать только вот это : 8.85 р / шт

дисконт 8.60
8.85 р / шт
Сейчас пробую так: var price = document.Result.QuerySelectorAll(@".price"); Но в результате выводится все, что находится в блоке


Ответы

Ответ 1



Я дал вам ссылку на вопрос на enSO, там есть красивый вариант (через чтение AngleSharp'ом безымянных блоков CSS) и мой варварский в вопросе (вырезанием всех "лишних" нод). В вашем случае начните с чего-то типа: var parser = new HtmlParser(); var document = parser.Parse(@"
дисконт 8.60
8.85 р / шт
"); var priceBlocks = document.QuerySelectorAll("div.price"); foreach (var block in priceBlocks) { var element = block.ChildNodes.First(o => o.NodeType == AngleSharp.Dom.NodeType.Text && o.TextContent.Trim() != ""); element.Text().Trim().Dump(); } Linqpad говорит, что вам вполне сойдёт для начала: Писал наспех, поэтому подразумеваю, что вы понимаете, что такое linq.

Комментариев нет:

Отправить комментарий