如何从URL字符串提取域名后缀并判断网站类型?
提取域名后缀并判断网站类型的解决方案
核心思路
先从URL中剥离出纯域名,再通过分割字符串提取后缀,最后匹配规则判断网站类型。
步骤拆解与代码实现
以Python为例,直接实现需求:
1. 提取域名后缀
不管输入的URL是否带协议(http/https)或路径,先处理得到纯域名,再用.分割成子串,按需取最后1-3个部分:
def get_domain_suffix(url): # 移除协议头和路径部分,只保留域名 if '://' in url: domain = url.split('://')[-1].split('/')[0] else: domain = url.split('/')[0] # 分割域名成子串列表 parts = domain.split('.') # 根据子串数量取最后1-3个部分作为后缀 if len(parts) >= 3: return '.'.join(parts[-3:]) elif len(parts) == 2: return '.'.join(parts[-2:]) else: return parts[0]
2. 判断网站类型
基于提取的后缀,匹配规则返回结果:
def check_website_type(url): suffix = get_domain_suffix(url) if '.com' in suffix: return "这是一个商业网站" elif '.org' in suffix: return "这是一个组织网站" elif '.lk' in suffix: return "这是一个斯里兰卡网站" else: return "无法识别该网站类型"
测试示例
# 测试输入验证 print(check_website_type("stackoverflow.com")) # 输出:这是一个商业网站 print(check_website_type("https://example.org/about")) # 输出:这是一个组织网站 print(check_website_type("srilanka.edu.lk")) # 输出:这是一个斯里兰卡网站 print(check_website_type("test.co.uk")) # 输出:无法识别该网站类型
关于“提取最后几个子串”的说明
用字符串的split('.')方法可以把域名按.拆分成列表,通过负索引就能快速取最后几个子串:
parts[-1]:取最后1个元素(如com、lk)parts[-2:]:取最后2个元素(如co.uk)parts[-3:]:取最后3个元素(如edu.co.uk)
之后用'.'.join()把这些子串重新拼接成完整后缀即可。
内容的提问来源于stack exchange,提问作者Odil Vidmal
相关产品推荐
相关产品推荐

