Разобрать html с помощью Perl

У меня есть следующий html-

<a href="http://address.com">John</a>: I really <b>love</b> <b>soccer</b>;

Я хочу разобрать его в CSV, где я бы

имя = Джон

комментарий = Я очень люблю футбол.

ключевые слова = любовь, футбол

в консольном приложении любая помощь приветствуется.


person Ebikeneser    schedule 06.09.2011    source источник
comment
Вы можете использовать регулярные выражения.‹/troll›   -  person DVK    schedule 06.09.2011


Ответы (2)


Вот пример того, как выполнить синтаксический анализ с помощью HTML::TreeBuilder:

use HTML::TreeBuilder;

my $html = HTML::TreeBuilder->new_from_content(<<END_HTML);
<a href="http://address.com">John</a>: I really <b>love</b> <b>soccer</b>;
END_HTML

my $name     = $html->find('a')->as_text;               # "John"
my @keywords = map { $_->as_text } $html->find('b');    # "love", "soccer"
my $comment  = $html->as_text;                          # "John: I really love soccer; "

Очистка $comment остается в качестве упражнения.

person bvr    schedule 06.09.2011

В CPAN есть множество парсеров HTML, я предпочитаю HTML::TreeBuilder::XPath.

Text::CSV поможет вам создать файл CSV из извлеченных данных.

person Quentin    schedule 06.09.2011
comment
Это помогает прочитать руководство, теперь я лучше понимаю - person Ebikeneser; 06.09.2011