基於python 自帶module urllib
from urllib.parse import parse_qs, urlparse, urlencode, unquote, unquote_plus, quote, quote_plus
def parse_url_params(url):
"""將url ?後的參數轉成字典"""
# 提取url參數
query = urlparse(url).query
# 將字符串轉換爲字典
params = parse_qs(query)
# 所得的字典的value都是以列表的形式存在,若列表中都只有一個值
result = {key: params[key][0] for key in params}
return result
def dict_to_url_params(dct):
"""將字典轉成url params格式"""
return urlencode(dct)
def url_params_encode(value, code_type='plus'):
"""
將正常url編碼 / quote不編碼斜槓 /quote_plus編碼斜槓
"""
if code_type == 'plus':
return quote_plus(value)
else:
return quote(value)
def url_params_decode(value, code_type='plus'):
"""
將url編碼轉成中文/ unquote不解碼加號 /unquote_plus把加號解碼爲空格
"""
if code_type == 'plus':
return unquote_plus(value)
else:
return unquote(value)
if __name__ == '__main__':
a = parse_url_params('https://blog.csdn.net/u011342224/article/details/103138592/?tab=all')
print(a) # {'tab': 'all'}
b = dict_to_url_params({'tab': 'all/+'})
print(b) # tab=all%2F%2B
c = url_params_encode('https://blog.csdn.net/u011342224/article/details/103138592/?tab=all')
print(c) # https%3A%2F%2Fblog.csdn.net%2Fu011342224%2Farticle%2Fdetails%2F103138592%2F%3Ftab%3Dall
d = url_params_decode(c)
print(d) #https://blog.csdn.net/u011342224/article/details/103138592/?tab=all