從一個域名裏面提取主域名,初想起來,貌似很簡單,不就是數點[.]的個數嗎?取最後一個點前後的字符串,那 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'