li26598296 发表于 2015-12-27 13:02:46

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)');
  
  
页: [1]
查看完整版本: perl HTML解析