原因:今天想做一个网站数据的摘取脚本,需要对html文件进行解析。这个功能原本是通过正则表达式来实现的,今天想使用perl模块方式已实现更好的可读性,也利于修改再使用。
CPAN上HTML解析的模块有很多,HTML::TreeBuilder,HTML::TreeBuilder::XPath, HTML::TableExtractHTML网上很多介绍。我今天就简单的介绍一下HTML:: Perser模块,
我也是研究阶段,不求讲的有多深刻,只希望对大家理解这个模块的使用上有帮助。当然举例一定能用。
先看实例:
#! /usr/local/bin/perl
use LWP::Simple;
use Data::Dumper;
use HTML::Parser;
my $content = <<EOHTML;
<A HREF="index.html">This is 1 link</A>
<A HREF="index.html">This is 2 link</A>
<A HREF="index.html">This is 3 link</A>
<A HREF="index.html">This is 4 link</A>
<A HREF="index.html">This is 5 link</A>
EOHTML
my $parser = HTML::Parser->new(
api_version => 3,
start_h =>[\&start,"tagname,attr"],
text_h =>[\&text,"text"],
);
$parser->parse($content);
$parser->eof;
sub start{
my($tag,$attr) = @_;
};
sub text{
my($text) = @_;
print $text;
};
转载于:https://blog.51cto.com/jinpeng/489940