解析一个 URL 获得各个概念所对应的值在 Python 中显得很简单, Python3 中将 urllib2urlparserobotparse 并入了 urllib 模块中, 所以原本在 Python 导入的方式在 Python3 中应该这样导入:

from urllib.parse import urlparse
复制代码

使用它我们可以获得 ParseResult 对象, 我们可以通过下标或者属性名来访问对象属性:

  • scheme (协议)
  • netloc (域名)
  • path (路径)
  • params (可选参数)
  • query (连接键值对)
  • fragment (特殊锚)

属性名

索引值

说明

空值情况下表达

scheme

0

URL 协议

""

netloc

1

URL 域名

""

path

2

URL 请求路径

""

params

3

URL 可选参数

""

query

4

URL 键值对参数

""

fragment

5

URL 特殊锚

""

username

用户名

None

password

密码

None

hostname

主机名(小写)

None

port

如果存在, 则是整数端口号

None

我们测试下这个函数的使用:

```python

#!/usr/bin/env python

# * Coding: UTF-8 *

from urllib.parse import urlparse

result = urlparse('juejin.cn/user/280560…') print(result)

输出的结果是:
```python
ParseResult(
    scheme='https', 
    netloc='juejin.im', 
    path='/user/5da32395e51d4578200cc9c5/posts', 
    params='', 
    query='params=123&username=123', 
    fragment=''
)