crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Парсер HTML файла
++Norton++
  опции профиля:
сообщение 21.11.2009, 1:02
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 98
Регистрация: 5.10.2008
Пользователь №: 380

Спасибо сказали: 0 раз(а)




Репутация:   1  


Есть куча файлов html. Из этих файлов ничего не надо, кроме того что стоит в тегах href с одинаково начинающимся адресом. Т.е. html документ имеет примерно такой вид:
<html><head></head><body>
.....
ненужная часть
...
<td>
<a href="?php=text&randomText...">ТекстДляПарсинга</a>
</td>
<td align="left">1234</td>
и т.д. (аналогичные ссылки и пр. теги)

Собственно нужно спарсить текст (хотя бы в QString) находящийся на месте "ТекстДляПарсинга" и то, что за ним, т.е. 1234.
Подскажите, как это лучше всего будет сделать?
Просто никогда раньше парсеры не приходилось писать.
Заранее спасибо!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
++Norton++
  опции профиля:
сообщение 29.11.2009, 14:16
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 98
Регистрация: 5.10.2008
Пользователь №: 380

Спасибо сказали: 0 раз(а)




Репутация:   1  


Сделал регулярку, как посоветовал rcdimon. Получилось вроде этого:
QRegExp rx("<a.+href.*=.*\"(.+?)\">(.+?)</a.*>");
while ((pos = rx.indexIn(Page, pos)) != -1) {

     parserList->append( rx.cap(1) );
     pos += rx.matchedLength();
}

Однако ничего не парсит :( С другой регуляркой работает нормально. Подскажите, дело в регулярке или нужно использовать не "rx.cap" а что-то другое?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


14 чел. читают эту тему (гостей: 14, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 16.1.2025, 4:10