Perl Mechanize标识特定div标记中span标记之间的内容

Perl Mechanize标识特定div标记中span标记之间的内容,perl,www-mechanize-firefox,html-tableextract,html-treebuilder,Perl,Www Mechanize Firefox,Html Tableextract,Html Treebuilder,Perl WWW::Mechanize::Firefox已成功检索网页内容,并存储在标量变量$content中 在检查$content时,我感兴趣的是识别并保存表中span标记之间的所有信息 有很多我不感兴趣的课程 尝试1无效 my $tree = HTML::TreeBuilder->new_from_content($txtRawData); my @list = $mech->find('span'); foreach ( @list ) { print $_->

Perl WWW::Mechanize::Firefox已成功检索网页内容,并存储在标量变量$content中

在检查$content时,我感兴趣的是识别并保存表中span标记之间的所有信息

有很多我不感兴趣的课程

尝试1无效

my $tree = HTML::TreeBuilder->new_from_content($txtRawData);    
my @list = $mech->find('span');

foreach ( @list ) {
print $_->as_HTML();
}
foreach my $tag ($tree->look_down(_tag => 'span')) {
    my $value = $tag->as_text;  
}
尝试2无效

my $tree = HTML::TreeBuilder->new_from_content($txtRawData);    
my @list = $mech->find('span');

foreach ( @list ) {
print $_->as_HTML();
}
foreach my $tag ($tree->look_down(_tag => 'span')) {
    my $value = $tag->as_text;  
}
感兴趣的HTML表格是:

选择set focus on a a specific table的最佳方法是什么?它们可以是$content变量中的多个表,并将span标记之间的文本保存到一个数组中,以传递给下一个过程(插入到数据库表中)

我还要强调:

有时,文本位于两组跨度标记内。 没有表标题行或th标记。
如果您实际在$tree而不是$mech上执行此操作,那么您的第一次尝试将有效。 再加上你第二次尝试的as_文本,效果非常好

use HTML::TreeBuilder;
my $tree = HTML::TreeBuilder->new_from_content(my @foo = <DATA>);
my @list = $tree->find('span');

foreach ( @list ) {
    say $_->as_text();
}
__DATA__
<div class="Mt(10px)">
    <table class="Lh(1.7) W(100%) M(0)">
...

当然,作为一个实际的数组表数组,它可能更有意义,但为此,我们必须知道您正在尝试做什么。

在您的第一次尝试中,您是指$tree而不是$mech吗?每一次尝试的结果是什么?如果我替换它,我会得到有用的输出。正确!简单的错误:它返回的输出仍然带有span标记:Revenue 9/24/2016 9/26/2015 9/27/2014 Total Revenue 215639000 215639000 233715000 233715000 182795000 182795000 182795000 foreach@list{my$value=$\>as_HTML;print$value\n;my$clean=$hs->parse$value;}@BrianDouglas这就是为什么我将您的两种尝试结合起来,并在代码中使用文本一。再读一遍我会强调一下。
Revenue
9/24/2016
9/26/2015
9/27/2014
...