用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第三方库


热门话题
java在JSP中添加自定义隐式对象   java MasterMindResource泄漏?   不同的c#java结果加密   java为什么安卓 studio显示“constraintlayout中缺少约束”错误?   java Make Logback将日志打印到文件中   java如何在Google应用程序引擎中设置日期时间?   jeditorpane如何阻止java HTMLEditorKit自动关闭我的标记   返回到Activity onCreate()时,不会调用java函数   java为什么我在这个对象上得到一个NullPointerException?   在java中,如何使用包含数组的参数调用图形方法?   java如何在Play framework 2应用程序中存储Akka参与者列表?   ssh使用java将文件从一个solaris 9复制到另一个solaris 9   网络Java服务器正在等待客户端响应   java Spring mvc从formBackingObject()重定向到页面   java Spark:JavaRDD<Tuple2>到javapairdd<>   java如何动态调用基类中由字符串值指定的子类方法?