python2.7 urllib和urllib2

  • urllib模块url编码和解码:

1.urllib.quote,urllib.quote_plus ,urllib.unquote ,urllib.unquote_plus

urllib.quote 说明:

quote(s, safe='/')
    quote('abc def') -> 'abc%20def'
    
    Each part of a URL, e.g. the path info, the query, etc., has a
    different set of reserved characters that must be quoted.
    
    RFC 2396 Uniform Resource Identifiers (URI): Generic Syntax lists
    the following reserved characters.
    
    reserved    = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" |
                  "$" | ","
    
    Each of these characters is reserved in some component of a URL,
    but not necessarily in all of them.
    
    By default, the quote function is intended for quoting the path
    section of a URL.  Thus, it will not encode '/'.  This character
    is reserved, but in typical usage the quote function is being
    called on a path where the existing slash characters are used as
    reserved characters.
(END)

urllib.quote_plus 说明: 

quote_plus(s, safe='')
    Quote the query fragment of a URL; replacing ' ' with '+'

实例演示:

In [18]: urllib.quote('abc def')
Out[18]: 'abc%20def'

In [19]: urllib.quote_plus('abc def')
Out[19]: 'abc+def'

2.urllib.urlencode

urlencode(query, doseq=0)
    Encode a sequence of two-element tuples or dictionary into a URL query string.
    
    If any values in the query arg are sequences and doseq is true, each
    sequence element is converted to a separate parameter.
    
    If the query arg is a sequence of two-element tuples, the order of the
    parameters in the output will match the order of parameters in the
    input.
(END)

  实例演示:

In [21]: urllib.urlencode({'username':'xixi','passward':'haha'})
Out[21]: 'username=xixi&passward=haha'

In [23]: urllib.urlencode((('username','嘻嘻'),('passward','哈哈')))
Out[23]: 'username=%E5%98%BB%E5%98%BB&passward=%E5%93%88%E5%93%88'

  

原文地址:https://www.cnblogs.com/chbo/p/10142921.html