我想从URL列表中提取域名(站点名称+ 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中提取我想要的内容,还是应该手动执行?
答案 0 :(得分:8)
这有点不重要,因为没有简单的规则可以确定什么是有效的公共后缀(网站名称+ 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
答案 1 :(得分:2)
维护了public list TLD和CC TLD。
此python项目读取此列表并将您的URL与此列表进行比较。
https://github.com/john-kurkowski/tldextract
答案 2 :(得分:0)
使用python tld
https://pypi.python.org/pypi/tld
$ pip install tld
from tld import get_tld
print get_tld("http://www.google.co.uk/some-page/some-sub-page/")
'google.co.uk'
答案 3 :(得分:0)
目前我看到六个包正在进行域名分割:
它们缓存公共后缀列表数据的方式不同(只有tldextract使用JSON文件,从而节省了在加载时解析列表),用于下载该数据的策略,以及它们保留在内存中的结构(分别为:freezeset,set,set,dictionaries of labels,ditto,dictionary of names),它们决定了搜索算法。