#perl #mojo-dom
#perl #mojo-dom
Вопрос:
Просто впервые использую этот Mojo:: DOM и испытываю проблемы с извлечением информации на основе предыдущего тега. Ищу способ захватить «описание».
#!/usr/bin/perl
require v5.10;
use feature qw(say);
use Mojo::DOM;
my $html = q(<p><strong>Description</strong></p><p>The description</p> <p><strong>Usage</strong></p><p>How to use this tool</p>);
my $dom = Mojo::DOM->new( $html );
say $dom->find('p strong')->map('text')->join("n"); # Description
Ответ №1:
Чтобы получить первый, вы можете сделать это
say $dom->at('p strong')->parent->next->text;
Или получить их все
say $dom->find('p strong')->map(sub { $_->parent->next->text })->join("n");
Комментарии:
1. Спасибо за вашу помощь. В итоге я использовал что-то вроде:
for my $e (Mojo::DOM->new($data)->find('a, p strong, p')->each) { say $e->all_text;}