Python 分割域名及扩展名

8 投票
9 回答
25054 浏览
提问于 2025-04-15 23:10

你怎么把一个域名拆分开来,得到名字和后缀呢?

9 个回答

6

一般来说,搞清楚用户注册的域名部分和注册表的部分是比较困难的。比如说:a.com、b.co.uk、c.us、d.ca.us、e.uk.com、f.pvt.k12.wy.us……

Mozilla的好心人有一个专门的项目,列出了公众可以注册域名的后缀: http://publicsuffix.org/

23

哇,这里有很多不太好的回答。你只有在知道公共后缀列表的情况下才能做到这一点。如果你在用 split 或正则表达式之类的东西,那你就是在走错路。

幸运的是,这里是Python,有一个专门的库可以用:https://pypi.python.org/pypi/tldextract

根据他们的说明:

>>> import tldextract
>>> tldextract.extract('http://forums.news.cnn.com/')
ExtractResult(subdomain='forums.news', domain='cnn', suffix='com')

ExtractResult 是一个命名元组,这样使用起来就简单多了。

使用这样的库的好处是,他们会跟进公共后缀列表的更新,这样你就不用自己去维护了。

0
domain = 'subdomain.domain.ext'
name, ext = domain.split('.')[-2:]

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

撰写回答