You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何判断两个URL是否属于同一主域名?排除子域名干扰

判断URL是否同属主域名的正确方法(无需手动字符串解析)

你用urlparse判断域名的问题在于,它返回的hostname包含完整子域名,无法区分主域名与子域名。要不用手动字符串解析提取主域名,可以用专门处理域名解析的第三方库tldextract,它能准确识别主域名(包含.co.uk这类特殊公共后缀)。

步骤:

  1. 安装库
pip install tldextract
  1. 提取主域名并判断
    tldextract会把域名拆分为子域名、主域名、公共后缀三个部分,拼接主域名和后缀即可得到完整主域:
import tldextract

def get_main_domain(url):
    result = tldextract.extract(url)
    return f"{result.domain}.{result.suffix}"

# 测试示例
url1 = "https://sub1.example.com/page1"
url2 = "https://sub2.example.com/page1"
url3 = "https://blog.example.co.uk/post"
url4 = "https://news.example.co.uk/article"

# 判断同主域
if get_main_domain(url1) == get_main_domain(url2):
    print('Same Domain')  # 输出此结果
else:
    print('Different Domain')

# 处理多段后缀场景
if get_main_domain(url3) == get_main_domain(url4):
    print('Same Domain')  # 输出此结果
else:
    print('Different Domain')

为什么选择tldextract?

它内置了维护更新的公共后缀列表,能正确处理.co.uk、.github.io这类特殊多段后缀,避免手动解析时出现的逻辑错误(比如错误将example.co.uk拆成example.uk)。

Python标准库没有直接提供提取主域名的工具,因为主域名的定义依赖动态更新的公共后缀规则,第三方库更适合处理这类场景。

内容的提问来源于stack exchange,提问作者WeatherMon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 08:05:23