解析一个 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 | 用户名 | None |
|
password | 密码 | None |
|
hostname | 主机名(小写) | None |
|
port | 如果存在, 则是整数端口号 | None |
我们测试下这个函数的使用:
#!/usr/bin/env python
# _*_ Coding: UTF-8 _*_
from urllib.parse import urlparse
result = urlparse('https://juejin.im/user/5da32395e51d4578200cc9c5/posts?params=123&username=123')
print(result)
复制代码
输出的结果是:
ParseResult(
scheme='https',
netloc='juejin.im',
path='/user/5da32395e51d4578200cc9c5/posts',
params='',
query='params=123&username=123',
fragment=''
)
复制代码