Главная страница


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)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: как пропарсить html???   Andrei Protasovitski   09 Jan 2006 11:59:36 
 Re: как пропарсить html???   Nikolay Pichtin   09 Jan 2006 14:10:53 
 Re: как пропарсить html???   Artem Chuprina   10 Jan 2006 13:12:48 
Архивное /ru.perl/7015424b9d9ae.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional