Это работает, только если HTML был загружен из Интернета. Если я загружу HTML-код вручную, он сломается из-за искаженных тегов, присутствующих на 90% веб-сайтов.
аюсь проанализировать HTML с C ++, чтобы извлечь все URL из HTML (URL могут быть внутри атрибутов href и src).
Я пытался использовать Webkit, чтобы выполнить тяжелую работу за меня, но по какой-то причине, когда я загружаю фрейм с HTML, сгенерированный документ все неправильно (если я заставляю Webkit получить страницу из Интернета, сгенерированный документ просто отлично, но Webkit также скачивает все изображения, стили и сценарии, и я не хочу этого)
Вот что я пытался сделать:
frame->setHtml(HTML);
QWebElement document = frame->documentElement();
QList<QWebElement> imgs = document.findAll("a"); // Doesn't find all links
QList<QWebElement> imgs = document.findAll("img"); // Doesn't find all images
QList<QWebElement> imgs = document.findAll("script");// Doesn't find all scripts
qDebug() << document.toInnerXml(); // Print a completely messed-up document with several missing elements
Что я делаю неправильно? Есть ли простой способ разбора HTML с Qt? (Или какая-то другая легкая библиотека)