python3 模块 public缀_Python publicsuffixlist包_程序模块 - PyPI - Python中文网

publicsuffixlist

Public Suffix Listpython 2.5+/3.x的解析器实现。支持idn(unicode或punycoded)。

支持python2.5+和python 3.x

与内置psl和更新程序脚本一起提供。

用纯python编写。没有库依赖项。

68747470733a2f2f7472617669732d63692e6f72672f6b6f2d7a752f70736c2e7376673f6272616e63683d6d617374657268747470733a2f2f62616467652e667572792e696f2f70792f7075626c69637375666669786c6973742e737667687474703a2f2f706570792e746563682f62616467652f7075626c69637375666669786c697374

安装

publicsuffixlist可以通过pip或pip3安装。$ sudo pip install publicsuffixlist

如果您使用的是稍旧的发行版(rhel/centos6.x),则可能需要在安装之前更新pip本身。$ sudo pip install -U pip

用法frompublicsuffixlistimportPublicSuffixListpsl=PublicSuffixList()# uses built-in PSL filepsl.publicsuffix("www.example.com")# "com"# longest public suffix partpsl.privatesuffix("www.example.com")# "example.com"# shortest domain assigned for a registrantpsl.privatesuffix("com")# None# None if no private (non-public) part foundpsl.publicsuffix("www.example.unknownnewtld")# "unkownnewtld"# new TLDs are valid public suffix by defaultpsl.publicsuffix(u"www.example.香港")# u"香港"# accept unicodepsl.publicsuffix("www.example.xn--j6w193g")# "xn--j6w193g"# accept punycoded IDNs by default

最新的psl可以作为类似文件的line iterable对象传递。withopen("latest_psl.dat","rb")asf:psl=PublicSuffixList(f)

同时适用于python 2.x和3.x。$ python2 setup.py test

$ python3 setup.py test# from publicsuffix import PublicSuffixListfrompublicsuffixlist.compatimportPublicSuffixListpsl=PublicSuffixList()psl.suffix("www.example.com")# return "example.com"psl.suffix("com")# return "" rather than None

一些方便的方法。psl.is_private("example.com")# Truepsl.privateparts("aaa.www.example.com")# ("aaa", "www", "example.com")psl.subdomain("aaa.www.example.com",depth=1)# "www.example.com"

限制

publicsuffixlist不提供域名验证。

在dns协议中,大部分8位字符都是可接受的域名标签。符合icann的注册中心不接受具有_(下划线)但主机名可能具有的域名。例如,DMARC记录。

用户需要根据用户的上下文确认输入有效。

不支持部分编码(Unicode混合)的punycode,因为punycode en/解码速度非常慢,并且结果编码不可预知。

如果您不确定输入是否是有效的punycode,则应该执行unknowndomain.encode("idna"),这是等幂。

icann和私有后缀

公共后缀列表包含icann域的后缀和私有后缀。使用标志only_icann可以停用私有后缀:>>> psl = PublicSuffixList()

>>> psl.publicsuffix("example.priv.at")

'priv.at'

>>> psl = PublicSuffixList(only_icann=True)

>>> psl.publicsuffix("example.priv.at")

'at'

许可证此模块在Mozilla Public License 2.0下获得许可。

由Mozilla Foundation维护的公共后缀列表是根据Mozilla公共许可2.0授权的。

PSL测试用例数据集是公共域(CC0)。

来源/链接

欢迎加入QQ群-->: 979659372

9ddc589a9bae9dd81334056da3504a2c.png

推荐PyPI第三方库

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值