apr*_*mer 0 python email url domain-name
我已经看到了类似的问题,但并没有真正得到我正在寻找的东西,所以我很想知道.我正在尝试从其URL中提取服务器的主域,但就是这样,没有任何子域.因此,如果URL是,例如," http://forums.example.com/ "我想知道如何从中提取"example.com"部分.我尝试过倒数第二个点,但在处理像" http://forums.example.co.uk/ " 这样的网址时会遇到麻烦,因为它只会提取"co.uk"想要"example.co.uk".有没有办法我可以这样解析网址,而无需找到要比较的顶级域名列表?
PS:如果重要,我将在邮件服务器的上下文中使用它,因此URL可能看起来更像"mail.example.co.uk"或"message-ID@user.mail.example.co.英国"
编辑:好的,所以我知道这个问题的答案与"重复"问题中的答案之一相同,但我认为它是不同的,因为问题是不同的.在另一个问题中,提问者不管子域名是什么,所以选择的答案使用了urlparse,这不区分子域和域.此外,这个问题也询问了电子邮件地址,而urlparse不适用于电子邮件地址(抛出无效的网址异常).所以我认为这个问题与另一个问题截然不同,而不是重复
小智 6
你想看看tldextract.有了它,您可以轻松完成您想要的一切.例如:
>>> import tldextract
>>> extracted_domain = tldextract.extract('forums.example.com')
ExtractResult(subdomain='forums', domain='example', suffix='com')
Run Code Online (Sandbox Code Playgroud)
然后你可以:
>>> domain = "{}.{}".format(extracted_domain.domain, extracted_domain.suffix)
>>> domain
'example.com'
Run Code Online (Sandbox Code Playgroud)
它也适用于电子邮件:
>>> tldextract.extract('message-ID@user.mail.example.co.uk')
ExtractResult(subdomain='user.mail', domain='example', suffix='co.uk')
Run Code Online (Sandbox Code Playgroud)
只需使用pip进行安装: pip install tldextract
| 归档时间: |
|
| 查看次数: |
2246 次 |
| 最近记录: |