Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从python中的URL获取域名(name+;TLD)_Python_Url_Python 2.7_Domain Name - Fatal编程技术网

如何从python中的URL获取域名(name+;TLD)

如何从python中的URL获取域名(name+;TLD),python,url,python-2.7,domain-name,Python,Url,Python 2.7,Domain Name,我想从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中提取我想要的内容,或者我应该手动执行此操作?这有点不简单,因为没有简单的规则来确

我想从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中提取我想要的内容,或者我应该手动执行此操作?

这有点不简单,因为没有简单的规则来确定有效公共后缀(站点名称+TLD)的组成。相反,构成公共后缀的是

存在查询该列表(存储在本地)的python包;它叫:

有一个TLD和CC TLD的组合被维护

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

https://github.com/john-kurkowski/tldextract
使用python tld

$pip安装tld

from tld import get_tld
print get_tld("http://www.google.co.uk/some-page/some-sub-page/")
'google.co.uk'

此时,我看到六个包正在进行域名拆分:


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

谢谢。你能告诉我如何使用这个软件包吗。下载后应该打开哪个文件?或者使用。我正在使用EclipseIDE。推荐哪一个?publicsuffix的替代方案是模块。是的,Loki在他的回答中提到了它。@Martijn的回答正好涵盖了这一点。它是一个替代python项目。但我认为Martijn Pieters更好,这是误导性的。tld是英国的
uk
from tld import get_tld
print get_tld("http://www.google.co.uk/some-page/some-sub-page/")
'google.co.uk'