Помощник
Здравствуйте, гость ( Вход | Регистрация )
|
|
6:07:2007, 08:22
|
|
Новенький ![]() Группа: Программист Сообщений: 1 Регистрация: 6:07:2007 Пользователь №: 11 717 Репутация: 0
|
Задача стоит следующая: есть большое количество однотипных html-страниц, содержащих информацию типа той, что хранится на афише.ру, т.е. всякие музеи, выставки, театры, достопримечательности и т.д. Надо извлекать оттуда инфу, т.е. очистить от html-кода и определить, что есть что.
Ну и в связи с этим вопросы:
|
|
Сообщение
#1
|
|
![]() |
|
|
6:07:2007, 08:54
|
|
Гуру ![]() ![]() ![]() Группа: Модеры Сообщений: 378 Регистрация: 20:05:2006 Пользователь №: 4 316 Специализация: .NET Репутация: 8
|
Для: Bazzilic
Я решал такую задачу. Использовал .NET и регулярные выражения. |
|
Сообщение
#2
|
|
|
|
6:07:2007, 22:10
|
|
Продвинутый ![]() ![]() Группа: Программист Сообщений: 198 Регистрация: 4:08:2006 Из: Vladivostok.pm Пользователь №: 5 749 Специализация: Perl, Web Репутация: 4
|
Я как-то сталкнулся с такой задачей, попробовал HTML::Parser, вообще говря не знал, что он использует многопоточность, но что процесс разбора до ужаса неудобен, это я понял.
HTML::TreeBuilder - вот решение, которое мне понравилось. Строишь дерево, и методом пары тыков узнаешь где в этом дереве нужная тебе инфа. Для спаравки читай справку к модулю, (HTML::Tree) если будут проблемы, пиши. |
|
Сообщение
#3
|
|
|
|
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; } Вот мой небольшой скрипт по сдиранию комиксов с сайта К сожелению, имена картинок были жестокок измучены хешем, посему мне приходиться дергать их из страницы |
|
Сообщение
#4
|
|
![]() |
|
Текстовая версия | Сейчас: 16:05:2008 - 17:40 |