如何在python中使用urlparse和split()解析URL?

时间:2013-07-04 21:43:40

标签: python urlparse

有人可以在下面的代码中向我解释此行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

获取

1 个答案:

答案 0 :(得分:3)

Netloc的完整形式可以包含HTTP身份验证凭据和端口号:

login:password@www.google.co.uk:80

请参阅RFC1808RFC1738

因此,我们可能需要将其拆分为["login:password", "www.google.co.uk:80"],取最后一部分,将其拆分为["www.google.co.uk", "80"]并获取主机名。

如果省略这些部分,试图拆分不存在的分界符没有坏处,也不需要检查它们是否被省略。

urlparse documentation