【问题标题】:How to parse URLs using urlparse and split() in python?如何在 python 中使用 urlparse 和 split() 解析 URL?
【发布时间】:2013-07-04 21:43:39
【问题描述】:

有人可以在下面的代码中向我解释这行 host = parsed.netloc.split('@')[-1].split(':')[0] 的用途吗?我知道我们正在尝试从 netlock 获取主机名,但我不明白为什么我们要使用 @ 分隔符拆分,然后再使用 : 分隔符。

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 获得它

【问题讨论】:

    标签: python urlparse


    【解决方案1】:

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

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

    RFC1808RFC1738

    所以我们可能必须将其拆分为 ["login:password", "www.google.co.uk:80"],取出最后一部分,将其拆分为 ["www.google.co.uk", "80"] 并取出主机名。

    如果这些部分被省略,那么尝试在不存在的分隔符上进行分割是没有害处的,并且无需检查它们是否被省略。

    urlparse documentation

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-06
      • 1970-01-01
      • 1970-01-01
      • 2014-10-05
      • 2019-09-11
      • 2021-03-02
      • 1970-01-01
      • 2018-06-12
      相关资源
      最近更新 更多