首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在python中从URL获取域名(name+TLD)

如何在python中从URL获取域名(name+TLD)
EN

Stack Overflow用户
提问于 2013-03-17 20:38:38
回答 4查看 3.3K关注 0票数 3

我想从URL列表中提取域名(site+TLD的名称),这些URL的格式可能会有所不同。例如:当前状态->我想要的

代码语言:javascript
复制
mail.yahoo.com------> yahoo.com
account.hotmail.co.uk---->hotmail.co.uk
x.it--->x.it
google.mail.com---> google.com

有没有python代码可以帮助我从URL中提取我想要的东西,或者我应该手动完成?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-03-17 20:50:33

这在某种程度上很重要,因为没有简单的规则来确定是什么构成了有效的公共后缀(站点名称+ TLD)。相反,形成公共后缀的是maintained as a list at PublicSuffix.org

存在一个python包,用于查询该列表(存储在本地);它称为publicsuffix

代码语言:javascript
复制
>>> from publicsuffix import PublicSuffixList
>>> psl = PublicSuffixList()
>>> print psl.get_public_suffix('mail.yahoo.com')
yahoo.com
>>> print psl.get_public_suffix('account.hotmail.co.uk')
hotmail.co.uk
票数 8
EN

Stack Overflow用户

发布于 2013-03-17 21:00:59

维护了TLD和CC TLD的public list

此python项目读取此列表,并将您的URL与此列表进行比较。

代码语言:javascript
复制
https://github.com/john-kurkowski/tldextract
票数 3
EN

Stack Overflow用户

发布于 2017-10-27 16:06:48

现在我看到有六个包在做域名拆分:

它们的不同之处在于缓存公共后缀列表数据的方式(只有tldextract使用JSON文件,因此可以在加载时解析列表),用于下载数据的策略,以及它们在内存中保存的结构(分别为: frozenset、set、set、标签字典、同上、名字字典),这些结构决定了搜索算法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15460777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档