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)');

 

 

posted @ 2012-12-16 22:03  Arya_yu  阅读(507)  评论(0编辑  收藏  举报