Страницы

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

пятница, 24 января 2020 г.

Парсер HTML/XHTML на С++

#html #cpp #qt #парсер


Существует ли в природе парсер невалидного HTML на С++ / QT? 

Требования: 


без зависимостей, особенно бинарных, привязанных к конкретной архитектуре;
без привязки к UI и app event loop (hello QWebEngine), чтоб можно было использовать
его, например, в Android-приложении (QT Quick);
поиск XPath и CSS Selectors, descendants/ancestor оси (hello Gumbo)


Альтернативы в других языках: 
Java: Jsoup, Python: Grab/BeautifulSoup
    


Ответы

Ответ 1



Не вполне понятно, что такое "невалидный HTML" и насколько допустимо его отличие от стандарта. Посмотри, например, http://xmlsoft.org/html/libxml-HTMLparser.html#htmlReadFile (с атрибутом HTML_PARSE_RECOVER).

Ответ 2



Если устраивает HTML4, то можно попробовать libxml2 http://xmlsoft.org/ Но под андроид нужно будет iconv собрать, у меня остались смутные воспоминания, что определенные танцы с бубном там будут нужны. http://xmlsoft.org/FAQ.html#Compilatio из зависомостей он требует libz, iconv MIT лицензия

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

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