【问题标题】:Retrieve domain name from email address从电子邮件地址中检索域名
【发布时间】:2021-09-17 17:45:11
【问题描述】:

我正在Python 中处理一个庞大的电子邮件地址数据集,需要检索组织名称。

比如email@organizationName.com很容易提取,但是email@info.organizationName.com甚至email@organizationName.co.uk呢?

我需要一个通用的提取器,它应该能够相应地处理所有不同的可能性。

【问题讨论】:

  • 你试过什么?有 Python 代码吗?

标签: python python-3.x regex parsing nltk


【解决方案1】:

如果 organisationName 总是在 .com 或其他结尾之前 - 这可能有效 -

        email_str.split('@')[1].split('.')[-2]

【讨论】:

  • 感谢 Rusheel,但由于我已经编辑了帖子,orgname.co.uk 等呢?
【解决方案2】:

正则表达式在这里无法正常工作。为了能够可靠地做到这一点,您需要使用一个知道什么是有效后缀的库。

否则,提取器如何区分email@info.organizationName.comemail@organizationName.co.uk

这可以使用tldextract

例子:

import tldextract

emails = ['email@organizationName.com', 
          'email@info.organizationName.com', 
          'email@organizationName.co.uk',
          'email@info.organizationName.co.uk',
         ]

for addr in emails:
    print(tldextract.extract(addr))

输出:

ExtractResult(subdomain='', domain='organizationName', suffix='com')
ExtractResult(subdomain='info', domain='organizationName', suffix='com')
ExtractResult(subdomain='', domain='organizationName', suffix='co.uk')
ExtractResult(subdomain='info', domain='organizationName', suffix='co.uk')

要仅访问域,请使用tldextract.extract(addr).domain

【讨论】:

  • 谢谢buddemat,问题已经解决了。
猜你喜欢
  • 1970-01-01
  • 2013-09-29
  • 1970-01-01
  • 1970-01-01
  • 2012-10-03
  • 1970-01-01
  • 1970-01-01
  • 2017-08-29
  • 1970-01-01
相关资源
最近更新 更多