我想从一组可能格式不同的URL中提取域名(站点名称+顶级域名)。 例如: 当前状态---->我想要的
mail.yahoo.com------> yahoo.com
account.hotmail.co.uk---->hotmail.co.uk
x.it--->x.it
google.mail.com---> google.com
有没有任何Python代码可以帮助我从URL中提取我想要的内容,还是我需要手动操作?
我想从一组可能格式不同的URL中提取域名(站点名称+顶级域名)。 例如: 当前状态---->我想要的
mail.yahoo.com------> yahoo.com
account.hotmail.co.uk---->hotmail.co.uk
x.it--->x.it
google.mail.com---> google.com
有没有任何Python代码可以帮助我从URL中提取我想要的内容,还是我需要手动操作?
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
有一个公共列表,列出了维护的顶级域名和国别顶级域名。
这个Python项目会读取这个列表,并将您的URL与该列表进行比较。
https://github.com/john-kurkowski/tldextract
目前我看到有六个软件包执行域名拆分:
它们在缓存公共后缀列表数据的方式上有所不同(只有tldextract使用JSON文件,因此在加载时省去了解析列表的步骤),在下载该数据时使用的策略上也有所不同,并且它们在内存中保留的结构(分别为:frozenset、set、set、标签字典、同上、名称字典)决定了搜索算法。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'
uk
。 - Doug
setup.py
文件,或者使用一个Python安装工具(推荐)。 - Martijn Pieters