Python urlparse —提取不带子域的域名

发布于 2021-01-29 18:41:25

需要一种使用Python urlparse从URL提取不带子域的域名的方法。

例如,我想"google.com"从完整的网址中提取,例如"http://www.google.com"

我似乎可以看到的最接近的urlparsenetloc属性,但其中包括子域,在此示例中为www.google.com

我知道可以编写一些自定义字符串操作将www.google.com转换为google.com,但是我想避免在此任务中进行手工字符串转换或正则表达式。(这样做的原因是,我对url形成规则不够熟悉,以至于没有信心在编写自定义解析函数时可以考虑所需要的所有边缘情况。)

或者,如果urlparse不能满足我的需要,是否有人会知道其他任何Python URL解析库?

关注者
0
被浏览
49
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您可能想查看tldextract,该库旨在执行这种操作。

    它使用公共后缀列表尝试根据已知gTLD进行合理的拆分,但请注意,这只是一个蛮力列表,没有什么特别的,因此可以过时了(尽管希望它经过整理以免)。

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

    因此,在您的情况下:

    >>> extracted = tldextract.extract('http://www.google.com')
    >>> "{}.{}".format(extracted.domain, extracted.suffix)
    "google.com"
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看