如何使用 Mojolicious 打印段落元素中的文本
How to print the text in a paragraph element using Mojolicious
use strict;
use warnings;
use feature 'say';
use Mojo;
my $ua = Mojo::UserAgent->new;
my $array = $ua->get('http://blogs.perl.org/')->res->dom->find('div > p ')->map('text')->join("\n");
my @arr = split("\n",$array);
print "\n$arr[0]\n";
当我运行这段代码时,我得到以下输出
lets you write your Perl 6 code using Roman numerals:
但我希望输出为:
perl6-slang-roman lets you write your Perl 6 code using Roman numerals:
谁能帮帮我?
text
方法将仅获取紧接在 节点内的文本节点。要获取所有后代文本节点,您需要使用 all_text
使用join
然后再次split
将元素分隔成一个列表也是相当难看的。 find
方法returns一个Mojo::Collection
可以直接索引的对象
并且把选中的div
限制在需要的class
像这样
use strict;
use warnings;
use feature 'say';
use Mojo;
my $ua = Mojo::UserAgent->new;
my $collection = $ua->get('http://blogs.perl.org/')->res->dom->find('div.entry-body > p ');
say $collection->[0]->all_text;
输出
perl6-slang-roman lets you write your Perl 6 code using Roman numerals:
use strict;
use warnings;
use feature 'say';
use Mojo;
my $ua = Mojo::UserAgent->new;
my $array = $ua->get('http://blogs.perl.org/')->res->dom->find('div > p ')->map('text')->join("\n");
my @arr = split("\n",$array);
print "\n$arr[0]\n";
当我运行这段代码时,我得到以下输出
lets you write your Perl 6 code using Roman numerals:
但我希望输出为:
perl6-slang-roman lets you write your Perl 6 code using Roman numerals:
谁能帮帮我?
text
方法将仅获取紧接在 节点内的文本节点。要获取所有后代文本节点,您需要使用all_text
使用
join
然后再次split
将元素分隔成一个列表也是相当难看的。find
方法returns一个Mojo::Collection
可以直接索引的对象并且把选中的
div
限制在需要的class
像这样
use strict;
use warnings;
use feature 'say';
use Mojo;
my $ua = Mojo::UserAgent->new;
my $collection = $ua->get('http://blogs.perl.org/')->res->dom->find('div.entry-body > p ');
say $collection->[0]->all_text;
输出
perl6-slang-roman lets you write your Perl 6 code using Roman numerals: