python几个提取域名的库


懒得写正则,就在网上找了找,发现了两个还不错的提取域名的第三方库
赶紧拿出我的小本本记下,下次用的时候好找

tldextract

安装:

pip3 install tldextract

使用:

>>> import tldextract
>>>
>>> tld = tldextract.extract("email.jd.com.cn")
>>>
>>> tld
ExtractResult(subdomain='email', domain='jd', suffix='com.cn')
>>> tld.suffix
'com.cn'

按照自己的场景自行发挥就行

高级用法

#为后缀列表数据指定自己的URL或文件
#您可以指定自己的输入数据代替默认的Mozilla公共后缀列表:

extract = tldextract.TLDExtract(
 suffix_list_urls=["http://foo.bar.baz"],
 # Recommended: Specify your own cache file, to minimize ambiguities about where
 # tldextract is getting its data, or cached data, from.
 cache_file='/path/to/your/cache/file')

#以上片段将与您指定的网址提取,在首先需要下载后缀列表(即如果cache_file不存在)。 如果你想从你的本地文件系统使用的输入数据,只需要使用file://协议:

extract = tldextract.TLDExtract(
 suffix_list_urls=["file://absolute/path/to/your/local/suffix/list/file"],
 cache_file='/path/to/your/cache/file')
#请使用绝对路径suffix_list_urls关键字参数。 os.path是友好路径。

tld

文档:https://tld.readthedocs.io/en/latest/

安装

pip install tld

示例

### Get the TLD name as string from the URL given
from tld import get_tld

get_tld("http://www.google.co.uk")
# 'co.uk'

get_tld("http://www.google.idontexist", fail_silently=True)
# None





使用tld库中的get_tld方法:

from tld import get_tld
url = 'http://a.b.c.d.com.cn'
topLeverDomain = get_tld(url,as_object=True).fld
print(topLeverDomain)
#上述代码成功打印 d.com.cn
#需要注意的是,上述代码传入的 URL 值必须是一个完整的链接,必须包含scheme,比如:http://,https://,ftp://,否则会报错。

Get the TLD as an object


from tld import get_tld

res = get_tld("http://some.subdomain.google.co.uk", as_object=True)

res
# 'co.uk'

res.subdomain
# 'some.subdomain'

res.domain
# 'google'

res.tld
# 'co.uk'

res.fld
# 'google.co.uk'

res.parsed_url
# SplitResult(
#     scheme='http',
#     netloc='some.subdomain.google.co.uk',
#     path='',
#     query='',
#     fragment=''
# )

Get TLD name, ignoring the missing protocol

from tld import get_tld, get_fld

get_tld("www.google.co.uk", fix_protocol=True)
# 'co.uk'

get_fld("www.google.co.uk", fix_protocol=True)
# 'google.co.uk'

Get the first level domain name as string from the URL given

from tld import get_fld

get_fld("http://www.google.co.uk")
# 'google.co.uk'

get_fld("http://www.google.idontexist", fail_silently=True)
# None

Return TLD parts as tuple


from tld import parse_tld

parse_tld('http://www.google.com')
# 'com', 'google', 'www'

Check if some tld is a valid tld

from tld import is_tld

is_tld('co.uk)
# True

is_tld('uk')
# True

is_tld('tld.doesnotexist')
# False

is_tld('www.google.com')
# Falses

文章作者: 剑胆琴心
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 剑胆琴心 !
评论
 上一篇
绕过IP格式限制/SSRF 绕过IP格式限制/SSRF
在有些场景可能会遇到绕过ip限制的地方,如ssrf等 1.enclosed alphanumerics方式ⓔⓧⓐⓜⓟⓛⓔ.ⓒⓞⓜ >>> example.com ------ 可用List: ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩
2021-08-26
下一篇 
mac下node降级 mac下node降级
刚把电脑换成M1(别问我为啥不等新的,因为穷),因为node版本太高,导致hexo d报错, 网上搜的说是node版本太高了,于是就想着降级。 1.安装node版本管理模块nsudo npm install n -g 2.下边步骤请根据自己
2021-08-18
  目录