小编典典

从URL Python中提取域名

python

我正试图从网址列表中提取域名。 我的问题是url可以包含所有内容,例如:
m.google.com=> google
m.docs.google.com=> google
www.someisotericdomain.innersite.mall.co.uk=> mall
www.ouruniversity.department.mit.ac.us=> mit
www.somestrangeurl.shops.relevantdomain.net=> relevantdomain
www.example.info=>example
依此类推。
域的多样性不允许我使用正则表达式,如如何从URL获取域名所示(因为我的脚本将在来自真实网络流量的大量url上运行,因此正则表达式为了捕获如上所述的所有领域,将必须是巨大的)。
不幸的是,我的网络研究并未提供任何有效的解决方案。
有谁知道如何做到这一点?
任何帮助将不胜感激 !
谢谢


阅读 128

收藏
2020-12-20

共1个答案

小编典典

使用tldextract这是更有效的版本urlparse
tldextract准确的分离gTLDccTLD从注册(通用或国家代码顶级域名)domainsubdomainsURL的。

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