Russian Qt Forum
Сентябрь 21, 2024, 14:05 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Разбор HTML  (Прочитано 8515 раз)
MAGrikh
Гость
« : Июнь 18, 2009, 15:31 »

Задача следующего рода:
из полученного HTML кода получить определенные данные
структура получаемой страницы заранее известна (могут меняться только кол-во колонок в таблицах), ну и собственно те данные которые надо считать

как это лучше сделать, с помощью чего?!

Ниже кусок кода страницы (как пример) и из него надо на выходе получить: User =Krokodil, Rank=4176, Age=23
Код
HTML
<tr>
<td class="details">
<table>
<tr>
<th>User</th>
<td>Krokodil</td>
</tr>
<tr>
<th>Rank</th>
<td>4176</td>
</tr>
<tr>
<th>Age</th>
<td>23</td>
</tr>
</table>
 
</td>
<td class="desc1" rowspan="2">
<div></div>
</td>
</tr>
 
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #1 : Июнь 18, 2009, 16:31 »

Модуль QtXml смотри
Записан

Юра.
kirill
Гость
« Ответ #2 : Июнь 19, 2009, 05:49 »

Модуль QtXml смотри

Наверное не есть хорошо парсить html модулем xml. Если в html есть хоть одна ошибка, типа незакрытый тег <td>, то просто загрузить в DOM не получится. Возможно тут и SAX не поможет.
Парсить скорее всего нужно просто находя нужные строки.
Например искать теги <th>.
Записан
spectre71
Гость
« Ответ #3 : Июнь 19, 2009, 05:56 »

Если ничего путного не найдется, можно посмотреть QTextDocument, он явно умеет парсить HTML.
Может в его исходниках есть что интересное.
Записан
denka
Гость
« Ответ #4 : Июнь 19, 2009, 22:09 »

Посмотри libxml2 там есть возможность работы с html. Еще можно webkit попробывать. Именно webkit, а не QtWebkit троли к сожелению закрыли большую часть либы.  Ну или самому парсить как крайний случай.
« Последнее редактирование: Июнь 19, 2009, 22:11 от den'ka » Записан
mugabe
Гость
« Ответ #5 : Июнь 22, 2009, 08:40 »

По большому счету парсер html не так уж и сложен в реализации. SAX-like парсер для HTML это 50-100 строк кода.

Но для данной задачи по-моему, вполне достаточно будет выделить необходимые значения regexp-ами.
Записан
denka
Гость
« Ответ #6 : Июнь 22, 2009, 09:35 »

По большому счету парсер html не так уж и сложен в реализации. SAX-like парсер для HTML это 50-100 строк кода.

Интерестно посмотреть на такой SAX парсер   Подмигивающий
Записан
spectre71
Гость
« Ответ #7 : Июнь 22, 2009, 09:46 »

По большому счету парсер html не так уж и сложен в реализации. SAX-like парсер для HTML это 50-100 строк кода.

Но для данной задачи по-моему, вполне достаточно будет выделить необходимые значения regexp-ами.

Да, уж. Гораздо проще написать свой XML парсер чем для HTML.
Записан
mugabe
Гость
« Ответ #8 : Июнь 22, 2009, 13:12 »

Ок, будет свобоное время накидаю реализацию. Там правда ничего сложного Улыбающийся
Записан
MAGrikh
Гость
« Ответ #9 : Июнь 22, 2009, 17:42 »

Проблема в том, что с RegExp я тоже не сильно знаком, и если честно до сих пор не могу понять с какого бока подойти к решению вопроса...

Пример я привел самый простой из того что надо

Стандартный пример который есть в QT на парсинг XML и мог бы подойти - ни в какую кушать мой xHTML не стал...
А проблема как раз в том, что я больше понимаю что к чему когда вижу работающий пример... и вот пример найти никак не могу Грустный
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.059 секунд. Запросов: 23.