Apache 带端口号的域名_如何从URL中快速提取域名?

有时候,我们要从一段很长的 URL 里面提取出域名。例如从,我需要获取的是。

3cd0aa1490de7a8d66e020290147fc2d.png

可能有人会这样写代码:

url = '' domain = '.'.join(('/')[2].split('.')[1:]) 

运行效果如下图所示:

b351cadf908c9d9c2305522994dd3fbb.png

但如果我给出的 URL 没有带 https://,这段代码的结果就有问题。

而且,有些域名可能有三级、四级域名,例如:。显然,使用点分割以后,也不知道怎么拿到真正的域名。

还有一些人的需求可能只需要域名中的名字,例如只要kingname,只要google。

对于这些需求,如果手动写规则来提取的话,会非常麻烦。

不过好在 Python 有一个第三方库已经解决了这个问题,这就是tld。

我们先来安装它:

python3 -m pip install tld 

安装完成以后,我们来看看它的使用方法:

>>> url = '' >>> from tld import get_tld >>> result = get_tld(url, as_object=True>>> domain = result.domain >>> print(domain) kingname >>> domain_with_suffix = result.fld >>> print(domain_with_suffix)  

首先使用get_tld生成一个对象,然后通过对象的.domain属性获得纯域名,使用.fld属性,获得带有后缀的域名。

运行效果如下图所示:

67cf12724596a23e46c1462e4e40487b.png

对于不含https的网址,直接使用会报错,如下图所示:

c8c1f0485971e4e55acc4603eb647437.png

但只要加上一个参数fix_protocol=True就可以解决问题:

e3a35290d2d863b90e2e017c00993f74.png

【责任编辑:

赵宁宁

TEL:(010)68476606】


点赞 0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值