我正试图从网址列表中提取域名。 我的问题是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上运行,因此正则表达式为了捕获如上所述的所有领域,将必须是巨大的)。 不幸的是,我的网络研究并未提供任何有效的解决方案。 有谁知道如何做到这一点? 任何帮助将不胜感激 ! 谢谢
m.google.com
google
m.docs.google.com
www.someisotericdomain.innersite.mall.co.uk
mall
www.ouruniversity.department.mit.ac.us
mit
www.somestrangeurl.shops.relevantdomain.net
relevantdomain
www.example.info
example
使用tldextract这是更有效的版本urlparse, tldextract准确的分离gTLD或ccTLD从注册(通用或国家代码顶级域名)domain和subdomainsURL的。
tldextract
urlparse
gTLD
ccTLD
domain
subdomains
>>> import tldextract >>> ext = tldextract.extract('http://forums.news.cnn.com/') ExtractResult(subdomain='forums.news', domain='cnn', suffix='com') >>> ext.domain 'cnn'