2

我有一个小脚本,用于操作来自远程 URL 的代码(代码是单独的)。HTML::TableExtract 的手册页具有以下与执行表格中的表格提取相关的代码部分,即

$te = new HTML::TableExtract
      (
       headers => [qw(Summary Region)],
       chain   => [
                   { depth => 0, count => 2 },
                   { headers => [qw(Part Qty Cost)] }
                  ],
      );

我的代码包含这个,即:

use HTML::TableExtract;
use strict;
use warnings;

my $te = new HTML::TableExtract
      (
       headers => [qw(Incident Date Time Location Description)],
       chain   => [
                   { depth => 0, count => 2 },
                   { headers => [qw(Unit DIS ENR ONS LEF ARR BUS REM COM)] }
                  ],
      );

$te->parse_file('data.html');

但是,运行它给了我这个:

Can't locate object method "chain" via package "HTML::TableExtract" at /usr/lib/perl5/HTML/Parser.pm line 80.

有什么我想念的吗?(如果有人有更好的方法从表格中提取表格(同时打印来自两者的信息,我全神贯注)

4

1 回答 1

1

我没有chain在. _ HTML::TableExtract也许您使用的是过期版本?

但根据文档,您可以使用depthandcount属性执行此操作:

$te = HTML::TableExtract->new( 
                              headers => [qw(Unit DIS ENR ONS LEF ARR BUS REM COM)], 
                              depth => 1, 
                              count => 1 
                             );
$te->parse($html_string);

深度:指定您感兴趣的表应该如何嵌入到其他表中。HTML 文档中的顶级表的深度为 0,顶级表中的表的深度为 1,依此类推。

count:指定你感兴趣的每个深度内的哪个表,从0开始。

在你的情况下depthcount应该都是 1。

于 2013-07-31T04:13:49.930 回答