HTML::TableExtract不';行不通

HTML::TableExtract不';行不通,html,perl,html-tableextract,Html,Perl,Html Tableextract,输入html是,使用下面的脚本,我无法提取我想要的表。有什么建议吗 use strict; use warnings; use HTML::TableExtract; my $file="view-source_www.nasdaq.com_dividend-stocks_dividend-calendar.aspx_date=2017-Apr-19.html"; open DATA,$file || die "cannot"; my $content; { local $/ = u

输入html是,使用下面的脚本,我无法提取我想要的表。有什么建议吗

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

my $file="view-source_www.nasdaq.com_dividend-stocks_dividend-calendar.aspx_date=2017-Apr-19.html";
open DATA,$file || die "cannot";

my $content;
{
    local $/ = undef; # slurp mode
    $content = <DATA>;
}
close DATA;

my $te;
$te = HTML::TableExtract->new( headers => [qw(Announcement_Date)] );
$te-> parse($content);

# Examine all matching tables
foreach my $ts ($te->tables) {
  print "Table (", join(',', $ts->coords), "):\n";
  foreach my $row ($ts->rows) {
     print join(',', @$row), "\n";
  }
}
使用严格;
使用警告;
使用HTML::TableExtract;
my$file=“view-source\u www.nasdaq.com\u divident-stocks\u divident-calendar.aspx\u date=2017-Apr-19.html”;
打开数据,$file | | die“无法”;
我的$content;
{
本地$/=undef;#slurp模式
$content=;
}
封闭数据;
我的$te;
$te=HTML::TableExtract->new(标题=>[qw(公告日期)];
$te->parse($content);
#检查所有匹配的表
foreach my$ts($te->表格){
打印“表(“,连接(“,”,$ts->coords),”:\n”;
foreach my$行($ts->行){
打印联接(“,”,@$row),“\n”;
}
}
这里有两个问题

首先,正如所指出的,您没有解析正确的内容。您似乎正在分析“查看源”页面。您需要直接获取HTML。你可以用它来做

现在运行代码不会出现错误,但不幸的是,它也不会给出任何输出。这是因为您错误地为对象构造函数定义了
headers
参数。您使用了
qw(公告日期)
,但没有值为“公告日期”的表头,因此找不到匹配的表

如果将构造函数调用更改为:

$te = HTML::TableExtract->new( headers => ['Announcement Date'] );

然后您将获得预期的输出。

您的文件实际上是一个HTML页面,其中包含另一个页面的(转义)源。您可能想要原始HTML,而不是它的编码版本。。。“不起作用”没有帮助。
$te = HTML::TableExtract->new( headers => ['Announcement Date'] );