本文实例讲述了Python3的urllib.parse常用函数。分享给大家供大家参考,具体如下:
1、获取url参数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
>>> from urllib import parse >>> url = r 'https://docs.python.org/3.5/search.html?q=parse&check_keywords=yes&area=default' >>> parseResult = parse.urlparse(url) >>> parseResult ParseResult(scheme = 'https' , netloc = 'docs.python.org' , path = '/3.5/search.html' , params = ' ', query=' q = parse&check_keywords = yes&area = default ', fragment=' ') >>> param_dict = parse.parse_qs(parseResult.query) >>> param_dict { 'q' : [ 'parse' ], 'check_keywords' : [ 'yes' ], 'area' : [ 'default' ]} >>> q = param_dict[ 'q' ][ 0 ] >>> q 'parse' #注意:加号会被解码,可能有时并不是我们想要的 >>> parse.parse_qs( 'proxy=183.222.102.178:8080&task=XXXXX|5-3+2' ) { 'proxy' : [ '183.222.102.178:8080' ], 'task' : [ 'XXXXX|5-3 2' ]} |
2、urlencode
1
2
3
4
5
6
7
|
>>> from urllib import parse >>> query = { 'name' : 'walker' , 'age' : 99 , } >>> parse.urlencode(query) 'name=walker&age=99' |
3、quote/quote_plus
1
2
3
4
5
|
>>> from urllib import parse >>> parse.quote( 'a&b/c' ) #未编码斜线 'a%26b/c' >>> parse.quote_plus( 'a&b/c' ) #编码了斜线 'a%26b%2Fc' |
4、unquote/unquote_plus
1
2
3
4
5
|
from urllib import parse >>> parse.unquote( '1+2' ) #不解码加号 '1+2' >>> parse.unquote( '1+2' ) #把加号解码为空格 '1 2' |
如果你还想问为什么没有urldecode——再把示例1看五遍。^_^
希望本文所述对大家Python程序设计有所帮助。