代码之家  ›  专栏  ›  技术社区  ›  aprogrammer

仅从Python中的URL获取域名[重复]

  •  0
  • aprogrammer  · 技术社区  · 7 年前

    http://forums.example.com/ “我只想知道如何提取”示例。我试着在倒数第二个点进行拆分,但这在处理像这样的URL时会带来麻烦 http://forums.example.co.uk/ ,因为它只提取了“co。英国“when I would want”example.co.uk。有没有一种方法可以这样解析URL,而不必查找TLD列表进行比较?

    PS:如果有关系的话,我会在邮件服务器的上下文中使用它,所以URL很可能看起来更像“mail.example.co.uk”或message-ID@user.mail.example.co.uk"

    1 回复  |  直到 7 年前
        1
  •  6
  •   Lucas Veiga Fujicava    7 年前

    你想退房吗 tldextract 有了它,你可以轻松地做任何你想做的事。例如:

    >>> import tldextract
    >>> extracted_domain = tldextract.extract('forums.example.com')
    ExtractResult(subdomain='forums', domain='example', suffix='com')
    

    >>> domain = "{}.{}".format(extracted_domain.domain, extracted_domain.suffix)
    >>> domain
    'example.com'
    

    它也适用于电子邮件:

    >>> tldextract.extract('message-ID@user.mail.example.co.uk')
    ExtractResult(subdomain='user.mail', domain='example', suffix='co.uk')
    

    只需使用pip安装即可: pip install tldextract