zoukankan      html  css  js  c++  java
  • 怎么用Python提取域名中的主域名

    从一个域名里面提取主域名,初想起来,貌似很简单,不就是数点[.]的个数吗?取最后一个点前后的字符串,那 abc.txt 是域名吗?那再加个验证,加上国家码,.com,.cn,.org结尾的才算,那这个域名呢(www.freelancer.co.ro),它的主域名到底是freelancer.co.ro呢,还是co.ro?

    还好,Python从不缺少第三方库,有贡献者已经帮我们造好了轮子tldextract(https://github.com/john-kurkowski/tldextract)。

    安装

    pip install tldextract

    示例

    >>> import tldextract

    >>> val = tldextract.extract("https://www.ymw.cn/")

    >>> val

    ExtractResult(subdomain='www', domain='ymw', suffix='cn')

    >>> "{0}.{1}".format(val.domain, val.suffix) #主域名

    'ymw.cn'

    >>> tldextract.extract("aa.txt")

    ExtractResult(subdomain='aa', domain='txt', suffix='')

    >>> #后缀为空,不是域名

    >>>

    02

    再探一步

    如果只是简单使用,上面的代码已经足以,我们再稍稍前进一步。

    第一次提取主域名的时候,此包会访问域名后缀网站(https://publicsuffix.org/list/public_suffix_list.dat),生成一个域名后缀集合(.td_set,["ac", "com.ac", "edu.ac", "gov.ac", ... , "zip", "zippo", "zone", "zuerich"] ),有了这个集合,我们就可以定期更新,离线安装使用了。

     

    离线使用

    将.tld_set文件拷贝出来,离线使用。

  • 相关阅读:
    angular2监听页面大小变化
    angular如何引入公共JS
    angular使用Md5加密
    angular4模块中标签添加背景图
    angular使用sass的scss语法
    设置angular公共样式表
    更改angular的默认端口
    angular模拟web API
    RN与webview通讯
    shell通过ping检测整个网段IP的网络状态脚本
  • 原文地址:https://www.cnblogs.com/ymwang/p/8327967.html
Copyright © 2011-2022 走看看