怎么用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文件拷貝出來,離線使用。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM