解析一个 URL 获得各个概念所对应的值在 Python 中显得很简单, Python3 中将 urllib2
、urlparse
和 robotparse
并入了 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 | 用户名 |
| |
password | 密码 |
| |
hostname | 主机名(小写) |
| |
port | 如果存在, 则是整数端口号 |
| |
我们测试下这个函数的使用: | |||
```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=''
)