![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
burakov |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 554 Регистрация: 28.7.2006 Репутация: нет Всего: нет |
Добрый день,
подскажите как выдрать из html таблицу , если в ней есть куча вложенных таблиц, то есть может есть какое то хитрое решение? <table id=1> <table> </table> <table> <table> </table> </table> </table> Начало таблицы я могу указать уникально, а как найти мой верхний закрывающий </table>? Только пожалуйста не посылайте изучать HTML::Element я уже сутки сижу всякие html::parser и ему подобное читаю - ничего непонятно. Лучше, если кто делал, поделитесь кодом. Спасибо. |
|||
|
||||
DEER |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 749 Регистрация: 12.4.2005 Где: г. Рязань Репутация: 2 Всего: 13 |
а регулярки жадные. ищите /<\/table>/ и найдете самое крайнее совпадение
только если две таблицы будут - уже не подойдет -------------------- |
|||
|
||||
burakov |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 554 Регистрация: 28.7.2006 Репутация: нет Всего: нет |
Да в этом то все и дело - там дальше еще внизу таблицы - жадные регулярки здесь не подойдут.
Тут надо как то дерево построить от сих до сих, как то учитывая вложенные table. В принципе если повозюкаться то можно родить, но блин это мне два дня сидеть врубаться. Вот и подумал столько модулей разных готовых настрогали, а как их применить к моей ситуации ума не приложу. |
|||
|
||||
infarch |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 13.3.2009 Репутация: нет Всего: 1 |
А если не хотите изучать то с чем работаете, то наверно стоит задуматься о смене работы. |
|||
|
||||
burakov |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 554 Регистрация: 28.7.2006 Репутация: нет Всего: нет |
Не получается что то
Чего не так делаю? |
|||
|
||||
infarch |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 13.3.2009 Репутация: нет Всего: 1 |
Покажите с какой страницы эта таблица, у меня ведь нет вашего исходника
|
|||
|
||||
burakov |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 554 Регистрация: 28.7.2006 Репутация: нет Всего: нет |
Я вот в архиве файл со страницей приложил
та таблица ,где есть <span class="h9">характеристики:</span> Присоединённый файл ( Кол-во скачиваний: 2 ) ![]() |
|||
|
||||
infarch |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 13.3.2009 Репутация: нет Всего: 1 |
Да, случай запущенный...
Во первых, вот: my @matches = $tree->findnodes(q{.//*[@id='aspnetForm']/div[7]/div[2]/table[1]/tr/td[1]/table/tr/td[1]/table}); Во вторых: http://www.w3schools.com/xpath/ http://search.cpan.org/~mirod/HTML-TreeBui...uilder/XPath.pm http://search.cpan.org/~jfearn/HTML-Tree-4...HTML/Element.pm https://addons.mozilla.org/en-us/firefox/addon/firepath/ Если после прочтения останутся вопросы, то обращайтесь - сделаю недорого. |
|||
|
||||
burakov |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 554 Регистрация: 28.7.2006 Репутация: нет Всего: нет |
Спасибо, infarch,
Буду читать - еще бы по-русски писали эту документацию вообще бы хорошо было бы. конечно я ничего не понял в my @matches = $tree->findnodes(q{.//*[@id='aspnetForm']/div[7]/div[2]/table[1]/tr/td[1]/table/tr/td[1]/table}); мне как всегда улыбнулась удача - и я разобрал эти вложенные таблицы при помощи регулярки - хотя понимаю, что это конечно же не то. Кстати, а Ваш код подразумевает, что вложенность таблиц может произвольно меняться и т.л. - просто я вижу цифры, которые как бы говорят мне о количестве вложенных блоков, то есть как бы разобран один частный случай конкретной страницы... или я ошибаюсь??? Еще раз огромное спасибо. |
|||
|
||||
infarch |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 13.3.2009 Репутация: нет Всего: 1 |
Цифры, они такие... О чем только не говорят.
Вот это например /div[7] говорит что в некой ноде есть много дивов, а взять нужно седьмой. А вообще это первый пункт из моего списка. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl: CGI программирование" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: разработка для Web | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |