有人可以在下面的代码中向我解释此行host = parsed.netloc.split('@')[-1].split(':')[0]
的用途吗?我知道我们正在尝试从netlock获取主机名,但我不明白为什么我们要使用@ delimiter拆分然后再使用:delimiter。
import urlparse
parsed = urlparse.urlparse('https://www.google.co.uk/search?client=ubuntu&channel=fs')
print parsed
host = parsed.netloc.split('@')[-1].split(':')[0]
print host
Result:
ParseResult(scheme='https', netloc='www.google.co.uk', path='/search', params='', query='client=ubuntu&channel=fs, fragment='')
www.google.co.uk
当然,如果只需要域名,我们可以从urlparse.netloc
获取答案 0 :(得分:3)
Netloc的完整形式可以包含HTTP身份验证凭据和端口号:
login:password@www.google.co.uk:80
因此,我们可能需要将其拆分为["login:password", "www.google.co.uk:80"]
,取最后一部分,将其拆分为["www.google.co.uk", "80"]
并获取主机名。
如果省略这些部分,试图拆分不存在的分界符没有坏处,也不需要检查它们是否被省略。