KL
Konstantin LazarevМамыр 13, 2017, 2:06 Т.Ж.
Аналог jsoup для Qt
Доброе утро, подскажите пожалуйста, в Qt есть аналог библиотеки jsoup. Библиотека позволяет доставать любые теги из спарсеного документа.
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!
Пікірлер
Г
- Геній
- Қыр. 13, 2024, 7:46 Т.Қ.
C++ - Тест 001. Первая программа и типы данных
- Нәтиже:66ұпай,
- Бағалау ұпайлары-1
t
- torgaev_2024
- Қыр. 8, 2024, 1:20 Т.Қ.
C++ - Тест 001. Первая программа и типы данных
- Нәтиже:33ұпай,
- Бағалау ұпайлары-10
Соңғы пікірлер
Linux жүйесінде файлдарды қалай көшіруге болады Задумывались когда-нибудь о том, как мы привыкли доверять свои вещи службам грузоперевозок? Сейчас такие услуги стали неотъемлемой частью нашей жизни, особенно когда речь идет о переездах между …
ВР
Linux жүйесінде файлдарды қалай көшіруге болады Screenshot_20240802-065123.png
Влад РусоковТам. 2, 2024, 8:47 Т.Ж.
QML - Сабақ 016. SQLite деректер қоры және онымен QML Qt-та жұмыс істеу Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Qt Linux - Сабақ 001. Linux астында Autorun Qt қолданбасы как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
АК
Qt WinAPI - Сабақ 007. Qt ішінде ICMP Ping арқылы жұмыс істеу Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
Анатолий КононенкоАқп. 5, 2024, 9:50 Т.Ж.
Енді форумда талқылаңыз
Evgenii LegotckoiМаусым 24, 2024, 10:11 Т.Қ.
при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …
BlinCTМаусым 25, 2024, 8 Т.Ж.
BlinCTМамыр 5, 2024, 12:46 Т.Қ.
Evgenii LegotckoiМамыр 2, 2024, 9:07 Т.Қ.
Добрый день!
Если только на гитхабе кто-нибудь выложил нечто подобное, поскольку такая библиотека, если бы она была, была бы очень известна.
А так могу предложить варианты либо с 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 недели не мог добраться до ответа)