如何获取网站完整域名?代码仅返回顶级域名问题求助
解决tld.get_tld仅返回顶级域而非完整二级域的问题
我明白你的问题了——你用tld库的get_tld函数时,只拿到了com这样的顶级域,但你实际想要的是google.com这种完整的注册域名。这其实是因为get_tld的默认行为就是只返回顶级域,咱们调整一下代码就能解决。
问题原因
默认情况下,get_tld()函数的作用是提取URL中的顶级域(Top-Level Domain),也就是域名最右侧的部分(比如.com、.org)。而你需要的是包含二级域的完整注册域名,这时候得用库提供的其他方法或者调整参数。
解决方案1:使用get_fld函数(推荐)
tld库专门提供了get_fld()函数,它的设计目的就是获取完整的注册域名(二级域+顶级域),直接替换你的get_tld就行:
from tld import get_fld def get_domain_name(url): domain_name = get_fld(url) return domain_name print(get_domain_name("https://www.google.com")) # 输出: google.com
解决方案2:通过as_object=True参数获取完整域名
如果你更习惯用get_tld,可以给它加上as_object=True参数,这样函数会返回一个包含域名详细信息的对象,你只需要访问它的fld属性就能拿到完整域名:
from tld import get_tld def get_domain_name(url): tld_info = get_tld(url, as_object=True) domain_name = tld_info.fld return domain_name print(get_domain_name("https://www.google.com")) # 输出: google.com
这两种方法都能让你得到预期的google.com,测试其他网站(比如https://www.github.com)也会返回github.com,完全符合你的需求。
内容的提问来源于stack exchange,提问作者Ritik Sharma
相关产品推荐
相关产品推荐

