【发布时间】:2015-09-17 16:15:14
【问题描述】:
测试输入文件:
# cat test.html
<div>line 1<div>Another 1</div></div>
<div>line 2<div>Another 2</div></div>
<div>line 3<div>Another 3</div></div>
预期输出:
Another 1
Another 2
Another 3
脚本:
#!/usr/bin/perl
use warnings;
use strict;
use HTML::TreeBuilder;
my $tree = HTML::TreeBuilder->new;
# $tree->ignore_ignorable_whitespace(0);
# $tree->no_space_compacting(1)
$tree->parse_file("test.html");
foreach my $a ($tree->find("div"))
{
print $a->as_text."\n";
}
脚本输出:
line 1Another 1
Another 1
line 2Another 2
Another 2
line 3Another 3
Another 3
问题:
我正在寻求帮助,仅从 inner div 标签中提取内容。我的脚本首先输出line 1Another 1,然后输出Another 1。但是,我只对Another 1 感兴趣。
我尝试使用 ignore_ignorable_whitespace 和 no_space_compacting(如脚本 cmets 中所示),但没有成功。要么我没有正确使用它,要么我叫错了树。
【问题讨论】:
标签: html perl html-parsing