从一个域名里面提取主域名,初想起来,貌似很简单,不就是数点[.]的个数吗?取最后一个点前后的字符串,那 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'