分类:
2008-11-18 16:10:45
文章的背景是,作者在教授网页编辑的课程,他会给学生做一些使用nvu做网页作业,每个作业中有些特定的要求,作者苦于给学生的作业评分和做注释,所以就想到使用perl程序对学生的作品进行分析。
perl的正则表达式在文本处理方面的能力已经非常卓越,并且还有分解网页的专用模组HTML::TreeBuilder。它提供了一个html的分解器,这个分解器可以从一个网页构建出一个元素的树形结构。并且,从一个网页中建立一棵树和构建它的内容是非常容易的:
#新建一棵树
$tree = HTML::TreeBuilder->new;
#由一个网页文件构建树的内容
$tree->parse_file($file_name);
#当然也可以由一个变量的内容中分解出树的内容
$tree->parse($value);
@largeimages = $element->look_down(
sub {
$_[0]->tag() eq 'img' and
($_[0]->attr('width') > 100 or
$_[0]->attr('height') > 100)
}
);
@largeimages = $element->look_down(
'_tag' => 'img',
'width' => qr//,
'height' => qr//,
sub { $_[0]->attr('width') > 100 or
$_[0]->attr('height') > 100 }
);