用perl脚本实现HTML解析器

用perl脚本实现HTML解析器,html,perl,parsing,html-parsing,html-tree,Html,Perl,Parsing,Html Parsing,Html Tree,我的代码没有打印任何输出$tree->find(“p”)返回空值。您没有打开该文件,或者该文件完全不可解析 尝试以下方法: #!/usr/bin/perl use HTML::TreeBuilder; my $tree = HTML::TreeBuilder->new; $tree->parse_file("sample.html"); foreach my $anchor ($tree->find("p")) { print $anchor->as_te

我的代码没有打印任何输出<代码>$tree->find(“p”)返回空值。

您没有打开该文件,或者该文件完全不可解析

尝试以下方法:

#!/usr/bin/perl

use HTML::TreeBuilder;

my $tree = HTML::TreeBuilder->new; 

$tree->parse_file("sample.html");

foreach my $anchor ($tree->find("p")) {

  print $anchor->as_text, "\n";

}
这样你可以检查它是哪一个

当我为sample.html提供以下内容时,您的脚本运行良好

my $file = shift(@ARGV) or die "No filename given";
$tree->parse_file($file) or die "Unable to open $file";

测试文件
标题
第一段

第二段

第三段


请确保该文件与脚本位于同一目录中,并且包含p元素。您的脚本对我来说运行良好,输出了4个p标记,即我的sample.html hadfile与sample.html位于同一目录中,并且它有标记。但是它仍然没有返回任何内容。
$tree->dump
打印什么?
<html>
<head><title>test file</title></head>
<body>
    <h1>Title</h1>
    <p>First para</p>
    <p>Second para</p>
    <div>
        <P>Third para</P>
    </div>
</body>
</html>