在 Python 中从 URL 中提取域名

新手上路,请多包涵

我正在尝试从 URL 列表中提取域名。就像在 https://stackoverflow.com/questions/18331948/extract-domain-name-from-the-url

我的问题是 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 上运行,正则表达式必须是巨大的才能捕捉所有类型的领域)。

不幸的是,我的网络研究没有提供任何有效的解决方案。

有谁知道如何做到这一点?

任何帮助将不胜感激 !

谢谢

原文由 kobibo 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 710
2 个回答

Use tldextract which is more efficient version of urlparse , tldextract accurately separates the gTLD or ccTLD (generic or国家代码顶级域)来自已注册的 domainsubdomains 的 URL。

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

原文由 akash karothiya 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题