Python url构造:除常规字母之外的转义字符

时间:2012-10-18 02:39:20

标签: python url-rewriting mediawiki

我正在使用wikipedia api并使用以下api请求,

http://en.wikipedia.org/w/api.php?`action=query&meta=globaluserinfo&guiuser='$cammer'&guiprop=groups|merged|unattached&format=json`

但问题是我无法逃脱美元符号和类似的类似字符,我尝试了以下但它没有用,

    r['guiprop'] = u'groups|merged|unattached'
    r['guiuser'] = u'$cammer'

我在w3school中发现了这一点,但对每一个角色进行检查都会让人感到痛苦,在strip.http://www.w3schools.com/tags/ref_urlencode.asp

中逃避这一点的最佳方式是什么?

1 个答案:

答案 0 :(得分:1)

您应该查看使用urlencode

from urllib import urlencode

base_url = "http://en.wikipedia.org/w/api.php?"

arguments = dict(action="query",
                 meta="globaluserinfo",
                 guiuser="$cammer",
                 guiprop="groups|merged|unattached",
                 format="json")
url = base_url + urlencode(arguments)

如果您不需要构建完整的网址,则可以将quote函数用于单个字符串:

>>> import urllib
>>> urllib.quote("$cammer")
'%24cammer'

所以你最终得到:

r['guiprop'] = urllib.quote(u'groups|merged|unattached')
r['guiuser'] = urllib.quote(u'$cammer')