Страницы

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

среда, 22 января 2020 г.

При парсинге с помощью CsQuery текст элемента получаетсяв 16-м коде

#c_sharp #net #парсер


Пробую использовать CsQuery для парсинга html.
Есть в html документе набор дивов с классом some_class. Внутри каждого дива текст
на русском.
Пробую парсить дивы следующим образом:

//...
CQ cq = CQ.Create(html, Encoding.UTF8);
List items = cq.Find("div.some_class").ToList();
// Демо код для просмотра содержимого item-ов
items.ForEach(x => var test = x.InnerText);


В результате в test текст представлен в 16-тиричном коде.
Покопался в IDomObject, не нашёл способа задать кодировку.Также не понятно почему
кодировка слетает, если задал её при создании объекта cq.

Сталкивался ли кто-нибудь с подобной ситуацией? 
    


Ответы

Ответ 1



Это баг в версии 1.3.4 CsQuery. В сообщении об ошибке упоминается метод обхода проблемы: использовать .Cq().Text() вместо .InnerText. Проблема устранена в версии 1.3.5 beta, так что если не боитесь бета-версии, переходите на неё.

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

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