html提取特定div中的,通过从其他HTML页面提取的DIV生成HTML页面的脚本

#!/usr/bin/perl

use strict;

use warnings;

use HTML::TokeParser;

use HTML::Template;

use Data::Dumper;

my ($html_file) = @ARGV;

open my $html_handle, '<:utf8>

or die "Cannot open '$html_file': $!";

my $parser = HTML::TokeParser->new($html_handle);

my @divs;

while (my $tag = $parser->get_tag('div')) {

my $attr = $tag->[1];

next unless ref $attr eq 'HASH';

next unless defined(my $id = $attr->{id});

next unless $id eq 'div1' or $id eq 'div2';

my $div = $tag->[-1];

my $in_wanted = 1;

while ($in_wanted) {

my $token = $parser->get_token;

if ($token->[0] eq 'T') {

$div .= $token->[1];

}

else {

$div .= $token->[-1];

}

my ($type, $name) = @$token[0, 1];

if ($name eq 'div') {

$in_wanted += $type eq 'S' ? 1

: $type eq 'E' ? -1

: 0;

next;

}

if ($type eq 'E' and $name eq 'html') {

warn "Warning: Reached the end of '$html_file'\n";

last;

}

}

push @divs, {DIV => $div};

}

print output(@divs);

sub output {

my $tmpl_html = <

EO_TMPL

my $tmpl = HTML::Template->new(

scalarref => \$tmpl_html,

);

$tmpl->param(DIVS => \@_);

return $tmpl->output;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值