Форум программистов CODEBY.NET Хостинг в Беларуси — Active Technologies

Разработка бизнес сайтов

Нужны клиенты? Тогда сюда быстрее...
X   Сообщение сайта
(Сообщение закроется через 2 секунды)

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




> Parsing Html-файла, Выуживание информации из html-файлов
Bazzilic
Вставить ник
сообщение 6:07:2007, 08:22
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 1
Регистрация: 6:07:2007
Пользователь №: 11 717



Репутация: - 0 +


Задача стоит следующая: есть большое количество однотипных html-страниц, содержащих информацию типа той, что хранится на афише.ру, т.е. всякие музеи, выставки, театры, достопримечательности и т.д. Надо извлекать оттуда инфу, т.е. очистить от html-кода и определить, что есть что.

Ну и в связи с этим вопросы:
  • Не сталкивался ли кто-нибудь с такой задачей, и если сталкивался, то как решал?
  • Какой есть модуль для качественного разбора html-файлов? Я использовал HTML::Parser, но он зачем-то использует многопоточность, что вызывает больше проблем, чем решает.
Подняться вверх 
 
Сообщение #1
 
Новая тема 
Ответов (1 - 3)
NikSoft
Вставить ник
сообщение 6:07:2007, 08:54
Цитата Ответить 


Гуру
***

Группа: Модеры
Сообщений: 378
Регистрация: 20:05:2006
Пользователь №: 4 316
Специализация: .NET



Репутация: - 8 +


Для: Bazzilic
Я решал такую задачу.
Использовал .NET и регулярные выражения.
Подняться вверх 
 
Сообщение #2
Vovochka
Вставить ник
сообщение 6:07:2007, 22:10
Цитата Ответить 


Продвинутый
**

Группа: Программист
Сообщений: 198
Регистрация: 4:08:2006
Из: Vladivostok.pm
Пользователь №: 5 749
Специализация: Perl, Web



Репутация: - 4 +


Я как-то сталкнулся с такой задачей, попробовал HTML::Parser, вообще говря не знал, что он использует многопоточность, но что процесс разбора до ужаса неудобен, это я понял.

HTML::TreeBuilder - вот решение, которое мне понравилось.
Строишь дерево, и методом пары тыков узнаешь где в этом дереве нужная тебе инфа.
Для спаравки читай справку к модулю, (HTML::Tree) если будут проблемы, пиши.
Подняться вверх 
 
Сообщение #3
Vovochka
Вставить ник
сообщение 6:07:2007, 23:15
Цитата Ответить 


Продвинутый
**

Группа: Программист
Сообщений: 198
Регистрация: 4:08:2006
Из: Vladivostok.pm
Пользователь №: 5 749
Специализация: Perl, Web



Репутация: - 4 +


Код
#!/usr/bin/perl
use HTML::TreeBuilder;

for (1..67) {
    $_ = sprintf '%04d', $_;
    my $name = "erf$_.html";
    my $page_url = "http://www.giantitp.com/comics/$name";
    system "wget.pl $page_url";
    my $tree = HTML::TreeBuilder->new;
    $tree->parse_file("pool/$name");
    @imgs = $tree->look_down('_tag' => 'img');
#    for (my $i = 0; $i < @imgs; $i++) {                    # Преобретение
#        print "$i:\t",$imgs[$i]->attr('src'),"\n";                    # Знания!
#    }                                            #
    $comics_img = 'http://www.giantitp.com'.$imgs[16]->attr('src');        # Знание сила!
    system "wget.pl $comics_img";
    unlink "pool/$name";    #Ибо нефиг!
    $tree->delete;
}



Вот мой небольшой скрипт по сдиранию комиксов с сайта smile.gif
К сожелению, имена картинок были жестокок измучены хешем, посему мне приходиться дергать их из страницы wink.gif
Подняться вверх 
 
Сообщение #4


Быстрый ответ  Ответить  Новая тема 

> Быстрый ответ
Полужирный
Курсив
Подчеркнутый
Вставить изображение
Смайлики
Цитата
Код
 
 Отправлять уведомления об ответах на e-mail |  Включить смайлики |  Добавить подпись
   

 

RSS Текстовая версия Сейчас: 16:05:2008 - 17:40
с нами можно связаться по:
телефону: +375-(29)-632-60-67
e-mail:info@codeby.net