wim*_*wim 25 python string url ascii http
是否有一个简单的方法我urllib或其他库中缺少这个任务?URL编码使用"%"后跟两个十六进制数字替换不安全的ASCII字符.
这是输入和我的预期输出的示例:
Mozilla/5.0 (Linux; U; Android 4.0; xx-xx; Galaxy Nexus Build/IFL10C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
Mozilla%2F5.0+%28Linux%3B+U%3B+Android+4.0%3B+xx-xx%3B+Galaxy+Nexus+Build%2FIFL10C%29+AppleWebKit%2F534.30+%28KHTML%2C+like+Gecko%29+Version%2F4.0+Mobile+Safari%2F534.30
Run Code Online (Sandbox Code Playgroud)
qia*_*iao 49
对于Python 2.x,请使用 urllib.quote
使用%xx转义替换字符串中的特殊字符.从不引用字母,数字和字符"_.-".默认情况下,此函数用于引用URL的路径部分.可选的安全参数指定不应引用的其他字符 - 其默认值为"/".
例:
In [1]: import urllib
In [2]: urllib.quote('%')
Out[2]: '%25'
Run Code Online (Sandbox Code Playgroud)
编辑:
在您的情况下,为了用加号替换空间,您可以使用 urllib.quote_plus
例:
In [4]: urllib.quote_plus('a b')
Out[4]: 'a+b'
Run Code Online (Sandbox Code Playgroud)
对于Python 3.x,请使用 quote
>>> import urllib
>>> a = "asdas#@das"
>>> urllib.parse.quote(a)
'asdas%23%40das'
Run Code Online (Sandbox Code Playgroud)
以及有空间使用的字符串 quote_plus
>>> import urllib
>>> a = "as da& s#@das"
>>> urllib.parse.quote_plus(a)
'as+da%26+s%23%40das'
Run Code Online (Sandbox Code Playgroud)