【问题标题】:Extract main domain from URL using Shell/Python/Perl使用 Shell/Python/Perl 从 URL 中提取主域
【发布时间】:2015-03-08 14:00:31
【问题描述】:

我知道这个问题似乎已经被问到并得到了回答,但还有更复杂的情况需要考虑。

我在这里列出一些情况:

http://news.yahoo.com/test -> yahoo.com

http://www.yahoo.com/test -> yahoo.com

http://sports.sina.com.cn/test -> sina.com.cn

http://news.yahoo.co.jp/test -> yahoo.co.jp

http://subdomain.evisu.jp/test -> evisu.jp

http://cs.stanford.edu/test -> stanford.edu

http://eecs.tsinghua.edu.cn/test -> tsinghua.edu.cn

http://math.u-tokyo.ac.jp/test -> u-tokyo.ac.jp

其实还有更复杂的情况,下面的情况我们先不讨论。

http://www.jx.cn/test -> jx.cn

http://www.ecjtu.jx.cn/test -> ecjtu.jx.cn

【问题讨论】:

  • 尝试回显“http://news.yahoo.com/test”|剪切 -f2- -d "。" |剪切 -f1 -d "/"

标签: python perl shell url


【解决方案1】:

您可以使用 cpan 上的 URI 模块来解析这些字符串并提取主机名:

use URI;
while(<>) {
    my $uri = URI->new($_);
    my $host = $uri->host;
}

如果您需要摆脱第一个子域,只需使用字符串拆分。比如:

my @parts = split /\./, $host;
unshift @parts if @parts > 2;
my $newHost = join ".", @parts;

【讨论】:

    猜你喜欢
    • 2013-07-27
    • 2019-09-24
    • 2022-01-16
    • 1970-01-01
    • 2011-11-05
    • 2017-10-16
    • 1970-01-01
    • 1970-01-01
    • 2018-09-08
    相关资源
    最近更新 更多