KL
May 13, 2017, 12:06 p.m.
Аналог jsoup для Qt
Доброе утро, подскажите пожалуйста, в Qt есть аналог библиотеки jsoup. Библиотека позволяет доставать любые теги из спарсеного документа.
2
253
Do you like it? Share on social networks!
- Last comments
- AKApril 1, 2025, 11:41 a.m.Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
- VPMarch 9, 2025, 4:14 p.m.Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
- ИМNov. 22, 2024, 9:51 p.m.Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
- Now discuss on the forum
- МАApril 1, 2025, 4:21 p.m.0ff763fe-4e50-455d-a3a6-5699c243b1a5_17_44_22_1.xml
- fFeb. 15, 2025, 1:46 p.m.Подскажите, пожалуйста! Как данный класс можно дополнить, чтобы созданные объекты можно было перемещать мышкой по сцене?
- Не запускается компьютер (точнее работает блок , но сам монитор вообще жесть)В общем я ничего с интернета не скачивала в последнее время. На компе никаких левых пр…
- Вопрос решен. Узнать QModelIndex элемента на который мы перетаскиваем другой элемент, можно с помощью функции indexAt(event->position().toPoint()) представления QTreeViev вызываемой в переопр…
Добрый день!
Если только на гитхабе кто-нибудь выложил нечто подобное, поскольку такая библиотека, если бы она была, была бы очень известна.
А так могу предложить варианты либо с QXmlStreamReader , QXmlStreamWriter , либо с QDomDocument .
Впрочем, настоятельно рекомендую обратить внимание на QDomDocument , там есть методы по получению тегов по имени или id.
Если бы Вы писали на PyQt5, то я порекомендовал бы ещё обратить внимание на Python библиотеку BeautifulSoup 4 , она очень хороша, несмотря на немного неочевидные некоторые моменты в работе. У меня на сайте комментарии и ответы на форуме именно этой библиотекой обрабатываются перед публикацией. Но QDomDocument вполне себе реализует необходимый функционал по извлечению необходимых тегов, разве только нет методов, которые бы по классам или атрибутам выдёргивали необходимые теги, но можно в цикле запросто найти нужный тег из QDomNodeList .
Можно пару строк кода, для лучшего понимания, как вытащить только title из спарсеного документа.
Можно, но только покажите, как у вас тег title выглядит в HTML документе.
Так. Ну я увидел, как выглядит этот тег в логах об ошибке. Накидаю пример.
В следующий раз, просьба, вставлять HTML код через диалог вставки кода. (Надо будет подумать, как пофиксить этот баг)
Допустим тогда, есть вот такой кусок HTML кода:
Следовательно, нужно получить текст, который содержится в title . Для этого в pro файле необходимо подключить модуль xml
И воспользоваться возможностями QDomDocument
А этот модуль работает с удаленными файлами?
Вот такое мне выдает Яндекс, я могу его обработать с помощью данного класса?
При помощи QNetworkAccessManager я могу получить html текст, а яндекс отдает xml файл, думаю ошибка кроется здесь.
Без разницы. QNetworkAccessManager может забрать как html , так и xml текст. А QDomDocument и остальные сопутствующие классы входят в состав модуля xml , что само по себе говорит о том, что он заточен под работу с xml, да и html код - это тот же самый xml, только у него есть определённый стандарт.
Так что ошибка скорее всего в том, что не совсем правильно забираете данные из ответа QNetworkAccessManager`а
ERROR "Unable to init SSL Context: " Вот что выдает приложение, но с Google все отлично работает.
Подскажите как быть с тегами a или картинками?
Как вывести дерево доступных элементов, которые хранятся в doc?
Нужно иметь установленные библиотеки OpenSSL и в pro файле должен быть включен модуль network:
Большего в данном случае посоветовать не могу
Примерно так нужно поступать с тегами a или картинками:
То есть дёргать нужный атрибут из найденного тега
А вот здесь нужно делать модель данных, которую можно будет отобразить в QTreeView . Вообще есть готовый пример Simple DOM Model Example . Поищите его в примерах в Qt Creator. Можно будет оттуда выдернуть классы DomModel и DomItem, которые используются для отображения документа в древовидном виде.
Подсказка с OpenSSL очень помогла, у меня все вышло!!! Спасибо за видео, тоже очень помогло!!! Я рад) 2 недели не мог добраться до ответа)