gpt4 book ai didi

Python urlparse——提取没有子域的域名

转载 作者:IT老高 更新时间:2023-10-28 20:37:35 27 4
gpt4 key购买 nike

需要一种使用 Python urlparse 从 url 中提取不带子域的域名的方法。

例如,我想从 "http://www.google.com" 之类的完整网址中提取 "google.com"

urlparse 似乎与我最接近的是 netloc 属性,但它包括子域,在本例中为 www.google。 com.

我知道可以编写一些自定义字符串操作来将 www.google.com 转换为 google.com,但我想避免在此任务中手动进行字符串转换或正则表达式。 (原因是我对 url 形成规则不够熟悉,因此我有信心可以考虑编写自定义解析函数所需的每个边缘情况。)

或者,如果 urlparse 不能满足我的需求,有没有人知道其他 Python url 解析库可以做到吗?

最佳答案

您可能想查看 tldextract ,一个专为做这种事情而设计的库。

它使用公共(public)后缀列表尝试根据已知 gTLD 进行适当的拆分,但请注意,这只是一个蛮力列表,没有什么特别之处,因此它可能会过时(尽管希望它经过精心策划不)。

>>> import tldextract
>>> tldextract.extract('http://forums.news.cnn.com/')
ExtractResult(subdomain='forums.news', domain='cnn', suffix='com')

所以在你的情况下:

>>> extracted = tldextract.extract('http://www.google.com')
>>> "{}.{}".format(extracted.domain, extracted.suffix)
"google.com"

关于Python urlparse——提取没有子域的域名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14406300/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com