gpt4 book ai didi

Perl从html文件中提取模式

转载 作者:行者123 更新时间:2023-12-04 18:42:33 27 4
gpt4 key购买 nike

我有一个充满链接的 .html 文件,我想提取没有 http://的域(所以只是链接的主机名部分,例如 blah.com)列出它们并删除重复项。

到目前为止,这就是我想出的-我认为问题在于我尝试传递 $tree 数据的方式

#!/usr/local/bin/perl -w

use HTML::TreeBuilder 5 -weak; # Ensure weak references in use
use URI;
foreach my $file_name (@ARGV) {
my $tree = HTML::TreeBuilder->new; # empty tree
$tree->parse_file($file_name);
my $u1 = URI->new($tree);
print "host: ", $u1->host, "\n";
print "Hey, here's a dump of the parse tree of $file_name:\n";

# Now that we're done with it, we must destroy it.
# $tree = $tree->delete; # Not required with weak references
}

最佳答案

就个人而言,我会为此使用 Mojo::DOM,并使用 URI 模块来提取域:
`

  use Mojo::DOM;
use URI;
use List::AllUtils qw/uniq/;

my @domains = sort +uniq
map eval { URI->new( $_->{href} )->authority } // (),
Mojo::DOM->new( $html_code )->find("a[href]")->each;

(附注: ->authority 上的异常处理是因为某些 URI 会在此处发声;例如 mailto:s)

关于Perl从html文件中提取模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22437857/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com