用C++编写的高度优化的域名提取库

PyDomainExtractor的Python项目详细描述


Logo

用C++编写的高度优化的域名提取库

licensePythonBuildPyPi

目录

关于项目

PyDomainExtractor是一个用于快速将域名解析为其组成部分的库。该库是用C++编写的,实现了最高性能。在

使用

构建

性能

从域提取

测试是在一个包含1000万个来自不同TLD的随机域的文件上进行的(2020年9月24日)

LibraryFunctionTime
PyDomainExtractorpydomainextractor.extract2.30s
publicsuffix2publicsuffix2.get_sld25.77s
tldextract__call__34.22s
tldtld.parse_tld36.64s

从URL提取

测试是在一个包含100万个随机URL的文件上进行的(2020年9月24日)

^{tb2}$

先决条件

为了编译这个包,应该安装GCC、libidn2和Python开发包。在

  • 软呢帽
sudo dnf install python3-devel libidn2-devel gcc-c++
  • Ubuntu 18.04版
^{pr2}$

安装

pip3 install PyDomainExtractor

使用

提取

importpydomainextractor# Loads the current supplied version of PublicSuffixList from the repository. Does not download any data.domain_extractor=pydomainextractor.DomainExtractor()domain_extractor.extract('google.com')>>>{>>>'subdomain':'',>>>'domain':'google',>>>'suffix':'com'>>>}# Loads a custom SuffixList data. Should follow PublicSuffixList's format.domain_extractor=pydomainextractor.DomainExtractor('tld\n''custom.tld\n')domain_extractor.extract('google.com')>>>{>>>'subdomain':'google',>>>'domain':'com',>>>'suffix':''>>>}domain_extractor.extract('google.custom.tld')>>>{>>>'subdomain':'',>>>'domain':'google',>>>'suffix':'custom.tld'>>>}

提取
importpydomainextractor# Loads the current supplied version of PublicSuffixList from the repository. Does not download any data.domain_extractor=pydomainextractor.DomainExtractor()domain_extractor.extract('http://google.com/')>>>{>>>'subdomain':'',>>>'domain':'google',>>>'suffix':'com'>>>}

验证

importpydomainextractor# Loads the current supplied version of PublicSuffixList from the repository. Does not download any data.domain_extractor=pydomainextractor.DomainExtractor()domain_extractor.is_valid_domain('google.com')>>>Truedomain_extractor.is_valid_domain('domain.اتصالات')>>>Truedomain_extractor.is_valid_domain('xn--mgbaakc7dvf.xn--mgbaakc7dvf')>>>Truedomain_extractor.is_valid_domain('domain-.com')>>>Falsedomain_extractor.is_valid_domain('-sub.domain.com')>>>Falsedomain_extractor.is_valid_domain('\xF0\x9F\x98\x81nonalphanum.com')>>>False

TLD列表

importpydomainextractor# Loads the current supplied version of PublicSuffixList from the repository. Does not download any data.domain_extractor=pydomainextractor.DomainExtractor()domain_extractor.get_tld_list()>>>[>>>'bostik',>>>'backyards.banzaicloud.io',>>>'biz.bb',>>>...>>>]

许可证

根据麻省理工学院的许可证分发。有关详细信息,请参见LICENSE。在

联系人

加本大卫-gal@intsights.com

项目链接:https://github.com/Intsights/PyDomainExtractor

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
使用Spring安全性的java LDAP over TLS   java反应堆中DoAfterSuccess和doOnSuccess之间的区别是什么?   java修复NullPointerException   java从JTextArea写入文件,没有断线?   java鼠标信息。getPointerInfo()如何获取光标视图   java在JDK11之后交付javafx应用程序需要javafxmavenplugin吗?   java添加XMLAdapter会导致JAXBContext中出现NullPointerException。新实例方法   安卓如何在java中实现XMLReader和反序列化   javarichfaces:c:forEach内部a4j:region   linux如何在javax之后释放串行端口。java/shell中的comm.portinUseeException   如何在java小程序上显示列表中的单词   从FTP服务器检索Java文件   java iText7 Html到PDF页脚与页面计数器如何更改颜色   java两个线程如何同时锁定同一个对象?