需要一种使用 Python urlparse 从 url 中提取不带子域的域名的方法。
例如我想提取"google.com"
来自完整的网址,例如"http://www.google.com"
.
我能想到的最接近的urlparse
is the netloc
属性,但包括子域,在本例中为www.google.com
.
我知道可以编写一些自定义字符串操作来将 www.google.com 转换为 google.com,但我想在此任务中避免手动字符串转换或正则表达式。 (原因是我对 url 形成规则不够熟悉,无法确信我可以考虑编写自定义解析函数所需的每个边缘情况。)
Or, if urlparse
不能做我需要的事情,有谁知道任何其他 Python url 解析库可以吗?
您可能想查看提取物 http://pypi.python.org/pypi/tldextract,一个专为做这种事情而设计的图书馆。
它使用公共后缀列表来尝试根据已知的 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"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)