怎么用Python提取域名中的主域名
从一个域名里面提取主域名,初想起来,貌似很简单,不就是数点[.]的个数吗?取最后一个点前后的字符串,那 abc.txt 是域名吗?那再加个验证,加上国家码,.com,.cn,.org结尾的才算,那这个域名呢(www.freelancer.co.ro),它的主域名到底是freelancer.co.ro呢,还是co.ro?
还好,Python从不缺少第三方库,有贡献者已经帮我们造好了轮子tldextract(https://github.com/john-kurkowski/tldextract)。
安装
pip install tldextract
示例
>>> import tldextract
>>> val = tldextract.extract("https://www.ymw.cn/")
>>> val
ExtractResult(subdomain='www', domain='ymw', suffix='cn')
>>> "{0}.{1}".format(val.domain, val.suffix) #主域名
'ymw.cn'
>>> tldextract.extract("aa.txt")
ExtractResult(subdomain='aa', domain='txt', suffix='')
>>> #后缀为空,不是域名
>>>
02
再探一步
如果只是简单使用,上面的代码已经足以,我们再稍稍前进一步。
第一次提取主域名的时候,此包会访问域名后缀网站(https://publicsuffix.org/list/public_suffix_list.dat),生成一个域名后缀集合(.td_set,["ac", "com.ac", "edu.ac", "gov.ac", ... , "zip", "zippo", "zone", "zuerich"] ),有了这个集合,我们就可以定期更新,离线安装使用了。
离线使用
将.tld_set文件拷贝出来,离线使用。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?