Python3的urllib.parse常用函数小结
urllib.parse
模块是Python的一个重要的URL解析器,其中包含了许多常用的函数,例如urlencode、quote、unquote、quote_plus、unquote_plus等。这些函数能够帮助我们解析URL,加密URL内容,或者将URL转换为可读的内容。
urlencode
urlencode
函数可以将一个字典类型的参数转换成url格式的参数,常用于构建get请求的参数。下面是一个urlencode的例子:
import urllib.parse
params = {'name': '张三', 'age': 18, 'sex': '男'}
query_string = urllib.parse.urlencode(params)
print(query_string)
输出结果为:
name=%E5%BC%A0%E4%B8%89&age=18&sex=%E7%94%B7
可以看到urlencode
将字典类型的参数转换成了URL格式的参数。
quote
quote
函数可以将URL中的特殊字符进行编码,比如中文等,使得它们可以安全地在URL中传递。这个函数有一个可选参数safe
,可以指定一些字符不进行编码。下面是一个quote函数的例子:
import urllib.parse
url = 'https://www.example.com/?name=张三&age=18'
encoded_url = urllib.parse.quote(url, safe='/:?=&')
print(encoded_url)
输出结果为:
https://www.example.com/?name=%E5%BC%A0%E4%B8%89&age=18
可以看到中文部分被进行了编码,但是“/”,“?”等字符没有被编码。
unquote
unquote
函数可以将URL中的编码字符解码成为原字符,与quote
函数相反。下面是一个decode函数的例子:
import urllib.parse
encoded_url = 'https://www.example.com/?name=%E5%BC%A0%E4%B8%89&age=18'
url = urllib.parse.unquote(encoded_url)
print(url)
输出结果为:
https://www.example.com/?name=张三&age=18
可以看到之前编码的中文字符被解码成了原字符。
quote_plus
quote_plus
函数可以将URL中的空格和特殊字符进行编码。同样可以通过safe
参数指定不进行编码的字符。下面是一个quote_plus的例子:
import urllib.parse
url = 'https://www.example.com/?name=张三 年龄=18'
encoded_url = urllib.parse.quote_plus(url, safe='/:?=&')
print(encoded_url)
输出结果为:
https%3A%2F%2Fwww.example.com%2F%3Fname%3D%E5%BC%A0%E4%B8%89+%E5%B9%B4%E9%BE%84%3D18
可以看到空格、中文等被进行了编码。
unquote_plus
unquote_plus
函数与quote_plus
函数相反,将编码后的字符解码成为原字符。下面是一个unquote_plus的例子:
import urllib.parse
encoded_url = 'https%3A%2F%2Fwww.example.com%2F%3Fname%3D%E5%BC%A0%E4%B8%89+%E5%B9%B4%E9%BE%84%3D18'
url = urllib.parse.unquote_plus(encoded_url)
print(url)
输出结果为:
https://www.example.com/?name=张三 年龄=18
可以看到编码的字符已经被成功解码。
以上是Python3中urllib.parse
模块常用的urlencode、quote、unquote、quote_plus、unquote_plus函数的介绍。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python3的urllib.parse常用函数小结(urlencode,quote,quote_plus,unquote,unquote_plus等) - Python技术站