从url Python中提取域名

时间:2017-05-17 10:08:48

标签: python regex url server packages

我想从网址列表中提取域名。就像在 Extract domain name from the 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
等等...... 域的多样性不允许我使用how to get domain name from URL中所示的正则表达式(因为我的脚本将在实时网络流量上运行,正则表达式必须是巨大的才能捕获各种域如上所述) 不幸的是,我的网络研究没有提供任何有效的解决方案 有没有人知道如何做到这一点?
任何帮助将不胜感激 !
谢谢

4 个答案:

答案 0 :(得分:6)

使用func someMethod(){ let nsmutabledict = NSMutableDictionary(dictionary: ["title":"abc","id":"1"]) myTempArr = [nsmutabledict] } 效率更高的tldextracturlparse可以准确地区分tldextractgTLD(通用或国家/地区代码顶级域名)来自已注册的网址ccTLDdomain

subdomains

答案 1 :(得分:2)

您似乎可以对该网址使用urlparse https://docs.python.org/3/library/urllib.parse.html,然后解压缩netloc。

从netloc中,您可以使用拆分

轻松提取域名

答案 2 :(得分:0)

通过正则表达式的简单解决方案

import re

def domain_name(url):
    return url.split("www.")[-1].split("//")[-1].split(".")[0]

答案 3 :(得分:-1)

使用正则表达式,您可以使用以下内容:

(?<=\.)([^.]+)(?:\.(?:co\.uk|ac\.us|[^.]+(?:$|\n)))

https://regex101.com/r/WQXFy6/5

请注意,您必须注意co.uk等特殊情况。