我想从URL列表中提取域名(site+TLD的名称),这些URL的格式可能会有所不同。例如:当前状态->我想要的
mail.yahoo.com------> yahoo.com
account.hotmail.co.uk---->hotmail.co.uk
x.it--->x.it
google.mail.com---> google.com有没有python代码可以帮助我从URL中提取我想要的东西,或者我应该手动完成?
发布于 2013-03-17 20:50:33
这在某种程度上很重要,因为没有简单的规则来确定是什么构成了有效的公共后缀(站点名称+ TLD)。相反,形成公共后缀的是maintained as a list at PublicSuffix.org。
存在一个python包,用于查询该列表(存储在本地);它称为publicsuffix
>>> 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发布于 2013-03-17 21:00:59
维护了TLD和CC TLD的public list。
此python项目读取此列表,并将您的URL与此列表进行比较。
https://github.com/john-kurkowski/tldextract发布于 2017-10-27 16:06:48
现在我看到有六个包在做域名拆分:
它们的不同之处在于缓存公共后缀列表数据的方式(只有tldextract使用JSON文件,因此可以在加载时解析列表),用于下载数据的策略,以及它们在内存中保存的结构(分别为: frozenset、set、set、标签字典、同上、名字字典),这些结构决定了搜索算法。
https://stackoverflow.com/questions/15460777
复制相似问题