使用Perl刮取HTML文件,仅按顺序返回内容

前端之家收集整理的这篇文章主要介绍了使用Perl刮取HTML文件,仅按顺序返回内容前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
使用 HTML :: TreeBuilder – 或Mojo :: DOM – 我想抓取内容但保持顺序,这样我就可以将文本值放入一个数组中(然后用一个变量替换文本值)模板用途)

但这在TreeBuilder中

my $map_r = $tree->tagname_map();

my @contents = map { $_->content_list } $tree->find_by_tag_name(keys %$map_r);

foreach my $c (@contents) {
  say $c;
}

不返回订单 – 当然哈希没有订购.那么,如何从root访问树并保持返回的值序列?递归地走树?基本上,我想使用’as_text’方法,除了每个元素. (遵循这个nice idea,但我需要所有元素)

解决方法

这更好(使用Mojo :: DOM):

$dom->parse($html)->find('*')->each(
    sub {
        my $text = shift->text;
        $text =~ s/\s+/ /gi;
        push @text,$text;
    }
  );

但是,欢迎任何进一步的评论.

猜你在找的Perl相关文章