|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Andrei Protasovitski 2:450/186 09 Jan 2006 11:59:36 To : Vladimir Volkov Subject : Re: как пропарсить html??? -------------------------------------------------------------------------------- .RFC-Reply-To: andrei@siliconmaterials.com From: Andrei Protasovitski <andrei@siliconmaterials.com> Reply-To: andrei@siliconmaterials.com Доброго здоровья! Vladimir Volkov пишет: > YP> Привет All! > YP> В html находится куча <a><img></a> > YP> Мне нужно мне нужно выдрать url из тега A, и все параметры из IMG. > YP> Как это сделать правильно? > Если HTML "хороший" - т.е. известно, что атрибуты всегда закавычены (в > идеале - только двойными кавычками), теги корректным образом закрыты и > т.п. - можно попытаться одним регэкспом это сделать. Регэкспы, конечно, штука мощная и шустрая, но... Вполне может быть, что HTML составлен правильно, все там заковычено верно, однако если там встретятся вполне валидные конструкции типа <IMG SRC = "foo.gif" ALT = "A > B"> <!-- <A comment> --> <script>if (a<b && a>c)</script> <# Just data #> <![INCLUDE CDATA [ >>>>>>>>>>>> ]]> , регексп составить будет весьма сложно, если вообще возможно. (Примеры взяты из Perl Cookbook, 2nd Edition By Tom Christiansen and Nathan Torkington.) Оставим парсинг HTML регекспами пэхапэшникам :) > Если же ситуация более сложная или ковыряться с регэкспами желания нет - > посмотри в сторону HTML::Tree. Это набор модулей, умеющий распарсить даже > довольно гадко оформленный HTML и представить его в виде объектов. HTML::Tree кушает много памяти. Для больших документов это критично, а для поставленной задачи, имхо, нецелесообразно. Тут больше подойдет HTML::Parser, а еще лучше - HTML::TokeParser. -- Andrei Protasovitski mailto:andrei()siliconmaterials.com http://www.siliconmaterials.com/ ICQ: 75725244 Pinsk, Belarus --- Mozilla Thunderbird 1.0.7 (Windows/20050923) * Origin: -= http://fido.ext.by (sponsored by http://extmedia.com) (2:450/186) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/7015424b9d9ae.html, оценка из 5, голосов 10
|