怎么用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文件拷贝出来,离线使用。
怎么用Python提取域名中的主域名的更多相关文章
- 使用 python 提取照片中的手机信息
使用 python 提取照片中的手机信息 最近在做一个项目,有一个很重要的点是需要获取使用用户的手机信息,这里我选择从照片中获取信息.有人会问为什么不从手机里面直接获取设备信息.由于现在android ...
- python提取mysql中指定列参数,并循环打印
试验环境: Python 3.7.0 Mysql 5.0 实验目的: 使用python将数据库中指定的列中的数值取出来,并循环遍历,用以当成参数传递给需要它的方法. 本次实验取的是para列的数据 实 ...
- python 提取目录中特定类型的文件
python使用‘os’和‘re’模块提取目录中特定类型的文件,这两个模都是安装python自带的,所以不需要安装. 思路: 使用os库lilstdir获取文件夹中的所有文件名,然后带上文件夹路径组合 ...
- python提取文件中的方法名称
#提取文件中的方法名称 # -*- coding:utf-8 -*- def Query_Method(filepath): file = open(filepath,'r',encoding= 'U ...
- python 提取字符串中的指定字符 正则表达式
例1: 字符串: '湖南省长沙市岳麓区麓山南路麓山门' 提取:湖南,长沙 在不用正则表达式的情况下: address = '湖南省长沙市岳麓区麓山南路麓山门' address1 = address.s ...
- python 提取字符串中的数字组成新的字符串
方法一 # 有一个字符串text = "aAsmr3idd4bgs7Dlsf9eAF" # 请将text字符串中的数字取出,并输出成一个新的字符串 import re text = ...
- Python:提取网页中的电子邮箱
import requests, re #regex = r"([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)"#这个正则表达式过滤 ...
- java 解析URL里的主域名及参数工具类
java 解析URL里的协议及参数工具类,解析URL中的主域名,并统一把协议修改成http或去掉协议 public class UrlDomainUtils { private static fina ...
- apache服务器主域名跳转www域名
为集中网站权重,有时候我们需要把www域名跳转到主域名,或者主域名跳转到www域名. apache服务器如何实现主域名跳转www域名: 打开网站根目录下.htaccess文件,没有的话新建一个上传至网 ...
随机推荐
- c++ std::ifstream
#include <iostream> #include <plug/plug.h> using namespace std; //使用宽字符,我猜是为了适应那些要使用宽字符的 ...
- iOS 下载
#import "ViewController.h" @interface ViewController () @property (strong, nonatomic) NSMu ...
- Mac中pico编辑器的使用方法
Pico是一个由华盛顿大学(University of Washington)计算与通讯研究所(Computing and Communications Group)编写并维护的文本编辑程序,在多个版 ...
- Handlebars.js,Json+ajax+拼html
英文版:http://handlebarsjs.com./ 原文链接:http://www.cnblogs.com/diligenceday/p/4105229.html, http://segmen ...
- kafka 自启脚本
每次使用的时候都要手动去启动真头痛! 解决办法,自启吧! 方法一: 方法一: /etc/rc.local中添加 文件地址记得替换掉 ,我没使用这种,发现不是每次都行,就换了第二种方法 /usr/loc ...
- Linux上free命令的输出及其他
一.明确概念 A buffer is something that has yet to be "written" to disk. A cache is something t ...
- make编译六
如果要使用隐含规则生成你需要的目标,你所需要做的就是不要写出这个目标的规则.那么,make 会试图去自动推导产生这个目标的规则和命令,如果make 可以自动推导生成这个目标的规则和命令,那么这个行为就 ...
- oracle Dba之路
如何快速的成为一个合格的 DBA? 2010年11月03日 11:25:00 阅读数:584 原文来自:http://topic.csdn.net/u/20101031/21/A78B2EA1-6F2 ...
- 生信笔记-mooc【武大】
.DNA拓扑学 在拓扑结构的限制下,DNA进行复制等过程.还有连环数=扭转数+缠绕数. 2.拓扑异构酶 DNA变性破坏了两条链之间碱基形成的氢键.和拓扑异构酶是不同的. 3.RNA的组成和结构特点 R ...
- 浅谈 JS 内存泄露方式与避免方法(二)
Concept WHAT : 内存泄露是指一块被分配的内存既不能使用,又不能回收,直到浏览器进程结束.正常情况下,垃圾回收器在DOM元素和event处理器不被引用或访问的时候回收它们.但是,IE的早些 ...