Здравствуйте, гость ( Вход | Регистрация )
trdm | Дата 29.11.2009, 20:10 |
Блин, я где-то нарывался на html парсер на основе бизона. Вот бы его в либу оформить, можно было бы просто подключать к проекту. |
|
++Norton++ | Дата 29.11.2009, 14:16 |
Сделал регулярку, как посоветовал rcdimon. Получилось вроде этого:
Однако ничего не парсит С другой регуляркой работает нормально. Подскажите, дело в регулярке или нужно использовать не "rx.cap" а что-то другое? |
|
++Norton++ | Дата 21.11.2009, 22:52 |
Спасибо за советы! Вот, кстати, пример куска хтмл файла:
Вот. Из такого кода нужно выдрать текст1, текст2, текст3 а также те числа, что идут после ссылки, т.е. в теге td align=right. Т.е. в данном примере после первой ссылки это 5701375, после второй 5701027, после третьей 2804612. Заранее еще раз спасибо! |
|
molchanoviv | Дата 21.11.2009, 19:06 |
наверное регехпом можно попробовать. +1024. Тоже хотел посоветовать QRegExp. |
|
kwisp | Дата 21.11.2009, 13:59 |
насчет регехпа думал, но так и не додумался как его применить в данном случае... как вариант. читаешь файл в QString. далее тебе нужен такой regexp чтобы -- искал href=" пропускал все до ">"какой то текст"<"далее текст до открывающего тега(<bla>) какой то текст(<\bla>) 1. сказу надо учесть что в имени ссылки могут быть символы >,< 2. с помощью cap(int) вырезаешь все что нужно. скинешь примеры файлов можно конкретные "примеры" выражения подобрать. |
|
rcdimon | Дата 21.11.2009, 13:58 |
Цитата Собственно нужно спарсить текст (хотя бы в QString) находящийся на месте "ТекстДляПарсинга" и то, что за ним, т.е. 1234. Подскажите, как это лучше всего будет сделать? Просто никогда раньше парсеры не приходилось писать. Немного не корректно поставлена задача. Как я понимаю "ТекстДляПарсинга" является текстом ссылки. То есть надо вынимать тексты ыылок. А что значит "и то, что за ним, т.е. 1234" я не понял. Но могу привести регулярку для работы со ссылками например. Я такие вещи делал на Perl. Регулярка для извлечения URL из ссылки и текста ссылки может быть типа такой <a.+href.*=.*"(.+?)">(.+?)</a.*> |
|
++Norton++ | Дата 21.11.2009, 12:57 |
Спасибо, буду думать во всех направлениях, насчет регехпа думал, но так и не додумался как его применить в данном случае... Может быть есть какие-нибудь догадки? |
|
lioncub | Дата 21.11.2009, 10:35 |
kwisp, точно, все что меджду > < от body и не включая scripts | |
kwisp | Дата 21.11.2009, 1:39 |
по-моему не получится потому что хмл очень тебователен к закрывающим тегам... можно не загрузить документ... наверное регехпом можно попробовать. |
|
Litkevich Yuriy | Дата 21.11.2009, 1:19 |
Есть Несколько технологий: SAX и DOM - руководство полностью переведено. Есть ещё XQuery и XPath, возможно, для этой задачи могут быть удобнее, но только на английском |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 19.4.2024, 5:37 |