本文共 1793 字,大约阅读时间需要 5 分钟。
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、/
1 2 3 4 5 6 7 | >>> from urllib import parse >>> parse.parse_qs( 'action=addblog&job=modify&tid=1766670' ) { 'tid' : [ '1766670' ], 'action' : [ 'addblog' ], 'job' : [ 'modify' ]} #注意和第三个并不一样 >>> parse.parse_qsl( 'action=addblog&job=modify&tid=1766670' ) [( 'action' , 'addblog' ), ( 'job' , 'modify' ), ( 'tid' , '1766670' )] >>> dict (parse.parse_qsl( 'action=addblog&job=modify&tid=1766670' )) #注意和第一个并不一样 { 'tid' : '1766670' , 'action' : 'addblog' , 'job' : 'modify' } |
3、
1 2 3 4 5 6 7 | >>> from urllib import parse >>> query = { 'name' : 'walker' , 'age' : 99 , } >>> parse.urlencode(query) 'name=walker&age=99' |
4、/
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' |
5、/
1 2 3 4 5 | from urllib import parse >>> parse.unquote( '1+2' ) #不解码加号 '1+2' >>> parse.unquote( '1+2' ) #把加号解码为空格 '1 2' |
如果你还想问为什么没有urldecode——再把示例1看五遍。^_^
相关阅读:
1、
2、 (各种base编码。base58、base64等)
3、
*** ***
本文转自walker snapshot博客51CTO博客,原文链接http://blog.51cto.com/walkerqt/1766670如需转载请自行联系原作者
RQSLT