【发布时间】:2023-04-02 08:35:01
【问题描述】:
所以我编写了一个小函数来从输入域字符串中删除子域(如果有):
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")
在您拥有 .something.something tld. 之前,一切正常,例如 .co.uk 或 .co.in。
所以我的输出是:
apple.com
apple.com
apple.com
--> co.uk
它应该在哪里,
apple.com
apple.com
apple.com
bbc.co.uk
如何以优雅的方式修复/创建函数,而不是检查所有可能的双 tld? 编辑:如果这很重要,我将不得不检查数百万个域。所以我要做的就是将一个域传递给我的函数并获得一个干净的、无子域的域。
【问题讨论】:
-
@StephenRauch 一个函数。可能很快,因为我会从一个包含 100 万个域的列表中一次传递一个域。
-
没有其他办法。
co.uk不是有效域,但co.de是。因此,foo.co.uk将减少到foo.co.uk,但foo.co.de应该变成co.de。有一些库可以处理所有这些特殊情况。 -
@Blender 我的想法完全正确!这就是我卡住的原因!顺便说一句,你能命名这些库吗?
标签: python