所以我编写了一个小函数来从输入域字符串中删除子域(如果有):
def rm(text):
print(text.replace(text, '.'.join(text.split('.')[-2:])), end="")
print("\n")
if __name__ == "__main__":
rm("me.apple.com")
rm("not.me.apple.com")
rm("really.not.me.apple.com")
# problem here
rm("bbc.co.uk")
Run Code Online (Sandbox Code Playgroud)
一切都很好,直到你有.something.somethingtld., like.co.uk或.co.in。
所以我的输出是:
apple.com
apple.com
apple.com
--> co.uk
Run Code Online (Sandbox Code Playgroud)
它应该在的地方,
apple.com
apple.com
apple.com
bbc.co.uk
Run Code Online (Sandbox Code Playgroud)
如何以优雅的方式修复/创建该函数,而不是检查所有可能的双重顶级域名? 编辑:如果这很重要的话,我将不得不检查数百万个域名。所以我要做的就是将一个域传递给我的函数并获得一个干净的、无子域的域。
tldextract包应该根据公共后缀列表为您完成繁重的工作。它不是防弹的,但应该适用于所有合理的用例:
import tldextract
def rm(text):
return tldextract.extract(text).registered_domain
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3063 次 |
| 最近记录: |