HTML DOM Parser library
От: x-code  
Дата: 24.07.20 23:14
Оценка:
Что посоветуете?
Для XML например использую pugixml или tinyxml. Нужно что-то аналогичное для HTML.

Задача простая: никакого выполнения скриптов, никакого рендеринга, а просто загрузить в память и сделать некоторые модификации.
Например перебрать рекурсивно все теги и удалить у них все атрибуты кроме "class". Или удалить некоторые теги, заменив эти теги их собственным содержимым (innerHTML). Или найти в <head> путь к css и при необходимости откорректировать его.

Т.е. библиотека должна уметь загружать, сохранять и предоставлять стандартные функции доступа и модификации DOM.
Ну естественно, нужно что-то качественное и проверенное, при этом желательно легковесное и не тянущее за собой зависимостей. Нечто подобное сейчас попробовал на Qt Webkit, но там нужно загружать страницу в браузерный компонент, а мне нужно для массовой пакетной обработки.
Re: HTML DOM Parser library
От: a7d3  
Дата: 24.07.20 23:34
Оценка:
Здравствуйте, x-code, Вы писали:

XC>Т.е. библиотека должна уметь загружать, сохранять и предоставлять стандартные функции доступа и модификации DOM.

XC>Ну естественно, нужно что-то качественное и проверенное, при этом желательно легковесное и не тянущее за собой зависимостей. Нечто подобное сейчас попробовал на Qt Webkit, но там нужно загружать страницу в браузерный компонент, а мне нужно для массовой пакетной обработки.

например https://habr.com/ru/post/280270/
подобное находится в гугле через «html parser for c++».
Re[2]: HTML DOM Parser library
От: x-code  
Дата: 24.07.20 23:49
Оценка:
Здравствуйте, a7d3, Вы писали:

A>например https://habr.com/ru/post/280270/

A>подобное находится в гугле через «html parser for c++».

Я понимаю что находится, мне интересен именно практический опыт и проверенные временем решения, применяемые во многих проектах.
И кстати забыл сказать, пока лучше в рамках С++03.
Re: HTML DOM Parser library
От: bnk СССР http://unmanagedvisio.com/
Дата: 25.07.20 00:12
Оценка: +1
Здравствуйте, x-code, Вы писали:

XC>Что посоветуете?

XC>Для XML например использую pugixml или tinyxml. Нужно что-то аналогичное для HTML.

Стандартная libxml2 умеет html
Re[2]: HTML DOM Parser library
От: x-code  
Дата: 25.07.20 08:29
Оценка:
Здравствуйте, bnk, Вы писали:

bnk>Стандартная libxml2 умеет html


Спасибо, посмотрю

Вот я еще нашел какой-то
https://github.com/HamedMasafi/HtmlParser/
очень маленький, не знаю правда насколько проверенный и надежный

еще есть
https://github.com/lexbor/lexbor
но там 18 мегабайт, большую часть этого объема занимают какие-то файлы связанные с кодировками
строго говоря, мне это нафиг не нужно, мне вообще нужен парсер, который никаким анализом контента не занимается, он должен работать только с тегами и атрибутами, а контент прозрачно пропускать через себя и не трогать.
Причем даже теги и атрибуты не анализировать на "принадлежность к html", а просто работать с теми какие есть.
Re[3]: HTML DOM Parser library
От: x-code  
Дата: 25.07.20 23:01
Оценка:
Здравствуйте, x-code, Вы писали:

XC>Вот я еще нашел какой-то

XC>https://github.com/HamedMasafi/HtmlParser/
XC>очень маленький, не знаю правда насколько проверенный и надежный

Эта к сожалению многие операции не поддерживает. В частности удаление тегов и произвольных атрибутов.
Re: HTML DOM Parser library
От: c-smile Канада http://terrainformatica.com
Дата: 02.08.20 03:36
Оценка:
Здравствуйте, x-code, Вы писали:

XC>Что посоветуете?


Sciter использует модифицированную версию этого вот https://www.codeproject.com/Articles/14076/Fast-and-Compact-HTML-XML-Scanner-Tokenizer

Для того чтобы сделать html->processing->html очень даже. Ибо как я понимаю DOM тебе строить не нужно.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.