KL
Konstantin Lazarev13 мая 2017 г. 2:06
Аналог jsoup для Qt
Доброе утро, подскажите пожалуйста, в Qt есть аналог библиотеки jsoup. Библиотека позволяет доставать любые теги из спарсеного документа.
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.Вам это нравится? Поделитесь в социальных сетях!
Комментарии
Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
Пожалуйста, авторизуйтесь или зарегистрируйтесь
ВШ
- Варвара Шумбутова-Милютина
- 17 июня 2024 г. 22:39
C++ - Тест 001. Первая программа и типы данных
- Результат:0баллов,
- Очки рейтинга-10
ВШ
- Варвара Шумбутова-Милютина
- 17 июня 2024 г. 22:31
C++ - Тест 003. Условия и циклы
- Результат:42баллов,
- Очки рейтинга-8
МЧ
- Михаил Чеботарёв
- 15 июня 2024 г. 13:48
C++ - Тест 005. Структуры и Классы
- Результат:75баллов,
- Очки рейтинга2
Последние комментарии
Qt Linux - Урок 001. Автозапуск Qt приложения под Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
АК
Qt WinAPI - Урок 007. Работаем с ICMP Ping в Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
Анатолий Кононенко5 февраля 2024 г. 9:50
EVA25 декабря 2023 г. 18:30
Boost - статическая линковка в CMake проекте под Windows Сделал всё по-как у вас, но выдаёт ошибку [build] LINK : fatal error LNK1104: не удается открыть файл "libboost_locale-vc142-mt-gd-x64-1_74.lib" Хоть убей, не могу понять в чём дел…
Qt/C++ - Урок 056. Подключение библиотеки Boost в Qt для компиляторов MinGW и MSVC Для решения твой проблемы добавь в файл .pro строчку "LIBS += -lws2_32" она решит проблему , лично мне помогло.
Сейчас обсуждают на форуме
добавить qlineseries в функции в функции: "GPlotter::addSeries(QString title, QVector &arr)" я вызываю метод setChart(...), я в конструктор передал адрес на QChartView элемент
BlinCT5 мая 2024 г. 12:46
Evgenii Legotckoi2 мая 2024 г. 21:07
IscanderChe30 апреля 2024 г. 11:22
Добрый день!
Если только на гитхабе кто-нибудь выложил нечто подобное, поскольку такая библиотека, если бы она была, была бы очень известна.
А так могу предложить варианты либо с 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 недели не мог добраться до ответа)