我有一个小脚本,用于操作来自远程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.
我有什么东西不见了吗?(如果有人有更好的方法从表中提取表(同时打印两者的信息)
我在HTML::TableExtract
的文档中没有看到任何关于chain
方法的文档。也许你使用的是过期版本?
但根据文档,您可以使用depth
和count
属性来完成此操作:
$te = HTML::TableExtract->new(
headers => [qw(Unit DIS ENR ONS LEF ARR BUS REM COM)],
depth => 1,
count => 1
);
$te->parse($html_string);
depth:指定感兴趣的表在其他表中的嵌入方式HTML文档中的顶级表的深度为0,顶级表中的表的深度为1,依此类推
count:指定每个深度中您感兴趣的表,从0开始。
在您的情况下,depth
和count
应该都是1。