我有一个包含数百万个网址的列表。
我需要提取每个网址的 TLD 并为每个 TLD 创建多个文件。
例如,收集所有以 .com 作为 tld 的 url,并将其转储到 1 个文件中,将 .edu tld 转储到另一个文件中,依此类推。
此外,在每个文件中,我必须按域的字母顺序对其进行排序,然后按子域等进行排序。
谁能给我一个在 Perl 中实现这个的先机?
- Use URI解析 URL,
- Use its
host
获取主机的方法,
- Use 域::公共后缀's
get_root_domain
解析主机名。
- Use the
tld
or suffix
获取真实 TLD 或伪 TLD 的方法。
use feature qw( say );
use Domain::PublicSuffix qw( );
use URI qw( );
my $dps = Domain::PublicSuffix->new();
for (qw(
http://www.google.com/
http://www.google.co.uk/
)) {
my $url = $_;
# Treat relative URLs as absolute URLs with missing http://.
$url = "http://$url" if $url !~ /^\w+:/;
my $host = URI->new($url)->host();
$host =~ s/\.\z//; # D::PS doesn't handle "domain.com.".
$dps->get_root_domain($host)
or die $dps->error();
say $dps->tld(); # com uk
say $dps->suffix(); # com co.uk
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)