perl HTML解析
网上找了n多资料,感觉还是 HTML::TreeBuilder最好用了,研究了半天 HTML::TableExtract 也没研究明白。
my $root = HTML::TreeBuilder->new;
binmode HM, "utf8"; #中文乱码解决
$root->parse_file(\*HM);
my $body = $root->find_by_tag_name('body'); #找到body节点
my $table = $body->find_by_attribute('class','bglbk1'); #找到body下面 class='bglbk1'的节点
以下函数都是 HTML::TreeBuilder 继承于包HTML::Element, HTML::Element的其他函数有待研究
find_by_tag_name("tr") #用来得到表格的每一行
my %attr = $row->all_external_attr(); #得到$row的所有属性
$row->content_list#得到$row的每一个元素
中文乱码解决:
use utf8;
binmode(STDIN, ':encoding(utf8)');
binmode(STDOUT, ':encoding(utf8)');
binmode(STDERR, ':encoding(utf8)');