1、获取url参数。
<code>>>> </code><code>from</code> <code>urllib </code><code>import</code> <code>parse</code>
<code>>>> url </code><code>=</code> <code>r</code><code>'https://docs.python.org/3.5/search.html?q=parse&check_keywords=yes&area=default'</code>
<code>>>> parseResult </code><code>=</code> <code>parse.urlparse(url)</code>
<code>>>> parseResult</code>
<code>ParseResult(scheme</code><code>=</code><code>'https'</code><code>, netloc</code><code>=</code><code>'docs.python.org'</code><code>, path</code><code>=</code><code>'/3.5/search.html'</code><code>, params</code><code>=</code><code>'</code><code>', query='</code><code>q</code><code>=</code><code>parse&check_keywords</code><code>=</code><code>yes&area</code><code>=</code><code>default</code><code>', fragment='</code><code>')</code>
<code>>>> param_dict </code><code>=</code> <code>parse.parse_qs(parseResult.query)</code>
<code>>>> param_dict</code>
<code>{</code><code>'q'</code><code>: [</code><code>'parse'</code><code>], </code><code>'check_keywords'</code><code>: [</code><code>'yes'</code><code>], </code><code>'area'</code><code>: [</code><code>'default'</code><code>]}</code>
<code>>>> q </code><code>=</code> <code>param_dict[</code><code>'q'</code><code>][</code><code>0</code><code>]</code>
<code>>>> q</code>
<code>'parse'</code>
<code>#注意:加号会被解码,可能有时并不是我们想要的</code>
<code>>>> parse.parse_qs(</code><code>'proxy=183.222.102.178:8080&task=XXXXX|5-3+2'</code><code>)</code>
<code>{</code><code>'proxy'</code><code>: [</code><code>'183.222.102.178:8080'</code><code>], </code><code>'task'</code><code>: [</code><code>'XXXXX|5-3 2'</code><code>]}</code>
<code>>>> parse.parse_qs(</code><code>'action=addblog&job=modify&tid=1766670'</code><code>)</code>
<code>{</code><code>'tid'</code><code>: [</code><code>'1766670'</code><code>], </code><code>'action'</code><code>: [</code><code>'addblog'</code><code>], </code><code>'job'</code><code>: [</code><code>'modify'</code><code>]} </code><code>#注意和第三个并不一样</code>
<code>>>> parse.parse_qsl(</code><code>'action=addblog&job=modify&tid=1766670'</code><code>)</code>
<code>[(</code><code>'action'</code><code>, </code><code>'addblog'</code><code>), (</code><code>'job'</code><code>, </code><code>'modify'</code><code>), (</code><code>'tid'</code><code>, </code><code>'1766670'</code><code>)]</code>
<code>>>> </code><code>dict</code><code>(parse.parse_qsl(</code><code>'action=addblog&job=modify&tid=1766670'</code><code>)) </code><code>#注意和第一个并不一样</code>
<code>{</code><code>'tid'</code><code>: </code><code>'1766670'</code><code>, </code><code>'action'</code><code>: </code><code>'addblog'</code><code>, </code><code>'job'</code><code>: </code><code>'modify'</code><code>}</code>
<code>>>> query </code><code>=</code> <code>{</code>
<code> </code><code>'name'</code><code>: </code><code>'walker'</code><code>,</code>
<code> </code><code>'age'</code><code>: </code><code>99</code><code>,</code>
<code> </code><code>}</code>
<code>>>> parse.urlencode(query)</code>
<code>'name=walker&age=99'</code>
<code>>>> parse.quote(</code><code>'a&b/c'</code><code>) </code><code>#未编码斜线</code>
<code>'a%26b/c'</code>
<code>>>> parse.quote_plus(</code><code>'a&b/c'</code><code>) </code><code>#编码了斜线</code>
<code>'a%26b%2Fc'</code>
<code>from</code> <code>urllib </code><code>import</code> <code>parse</code>
<code>>>> parse.unquote(</code><code>'1+2'</code><code>) </code><code>#不解码加号</code>
<code>'1+2'</code>
<code>>>> parse.unquote(</code><code>'1+2'</code><code>) </code><code>#把加号解码为空格</code>
<code>'1 2'</code>
如果你还想问为什么没有urldecode——再把示例1看五遍。^_^
相关阅读:
本文转自walker snapshot博客51CTO博客,原文链接http://blog.51cto.com/walkerqt/1766670如需转载请自行联系原作者
RQSLT