我想从URL列表中提取域名(站点名称+ TLD),URL列表的格式可能不同。 例如: 现状---->我想如何从python中的URL获取域名(名称+ TLD)
mail.yahoo.com------> yahoo.com
account.hotmail.co.uk---->hotmail.co.uk
x.it--->x.it
google.mail.com---> google.com
是否有任何Python代码,可以帮助我与提取我从URL想还是应该做手工?
我想从URL列表中提取域名(站点名称+ TLD),URL列表的格式可能不同。 例如: 现状---->我想如何从python中的URL获取域名(名称+ TLD)
mail.yahoo.com------> yahoo.com
account.hotmail.co.uk---->hotmail.co.uk
x.it--->x.it
google.mail.com---> google.com
是否有任何Python代码,可以帮助我与提取我从URL想还是应该做手工?
这有点不平凡,因为没有简单的规则来确定什么使有效的公共后缀(网站名称+ 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
有TLD和TLD CC的public list被维护。
此python项目读取此列表并将您的URL与此列表进行比较。
https://github.com/john-kurkowski/tldextract
@ Martijn的回答完全覆盖了这一点。 – 2013-03-17 13:03:45
它是一个替代python项目。但我认为Martijn Pieters更好。 – 2013-03-17 13:07:46
使用Python TLD
https://pypi.python.org/pypi/tld
$ PIP安装TLD
from tld import get_tld
print get_tld("http://www.google.co.uk/some-page/some-sub-page/")
'google.co.uk'
这是误导。 tld是'uk'。 – Doug 2015-11-19 17:42:45
在这个时候,我看到有六个包做域名分裂:
他们的方式不同,他们缓存公共后缀列表数据(仅tldextract使用JSON文件,从而节约解析加载列表),用于下载数据的策略以及它们保存在内存中的结构(分别为:冻结nset,set,set,标签字典,同上,名字字典),它决定了搜索算法。
Thanks.Can你告诉我应该如何使用这个软件包。下载后应打开哪个文件? – UserYmY 2013-03-17 12:53:18
或者[运行'setup.py'文件](http://docs.python.org/2/install/index.html)或者使用[python安装工具(推荐)](http://guide.python -distribute.org/installation.html)。 – 2013-03-17 12:57:25
我正在使用eclipse IDE。哪一个被推荐? – UserYmY 2013-03-17 12:58:04