Skip to content

Url 解析

  • 对 url 进行解析,获取其中的参数、路径、域名等信息。

解码

  • 一般情况下,url 中包含的参数是经过编码的,需要进行解码。
python
import urllib.parse
url = "https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=%E6%89%93%E7%9A%84"
# 解码
decoded_url = urllib.parse.unquote(url)
print(decoded_url) # https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=打的

编码

  • 特殊参数需要进行编码如中文,否则会导致 url 解析错误。
python
import urllib.parse
url = "https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=打的"
# 编码
encoded_url = urllib.parse.quote(url,safe = ":/?=&")
print(encoded_url) # https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=%E6%89%93%E7%9A%84

解析

python
import urllib.parse

url = 'https://www.baidu.com/s?wd=python'
# 解析
parsed_url = urllib.parse.urlparse(url)
print(parsed_url)
print(parsed_url.scheme)    # 请求协议 如https
print(parsed_url.netloc)    # 域名
print(parsed_url.path)      # 路径
print(parsed_url.params)    # 参数
print(parsed_url.query)     # 查询字符串