J'ai une liste contenant des URL avec des caractères d'échappement en eux. Ces caractères ont été définis par urllib2.urlopen
quand il récupère la page html:
http://www.sample1webpage.com/index.php?title=%E9%A6%96%E9%A1%B5&action=edit
http://www.sample1webpage.com/index.php?title=%E9%A6%96%E9%A1%B5&action=history
http://www.sample1webpage.com/index.php?title=%E9%A6%96%E9%A1%B5&variant=zh
Existe-t-il un moyen de les ramener à leur forme non échappée en python?
P.S .: Les URL sont codées en utf-8
urllib.unquote(
chaîne)
Remplacer
%xx
S'échappe par leur équivalent d'un caractère.Exemple:
unquote('/%7Econnolly/')
donne'/~connolly/'
.
Et puis juste décoder.
Mise à jour: Pour Python 3, écrivez ce qui suit:
urllib.parse.unquote(url)
Et si vous utilisez Python3
vous pouvez utiliser:
urllib.parse.unquote(url)
ou urllib.unquote_plus
>>> import urllib
>>> urllib.unquote('erythrocyte+membrane+protein+1%2C+PfEMP1+%28VAR%29')
'erythrocyte+membrane+protein+1,+PfEMP1+(VAR)'
>>> urllib.unquote_plus('erythrocyte+membrane+protein+1%2C+PfEMP1+%28VAR%29')
'erythrocyte membrane protein 1, PfEMP1 (VAR)'
Vous pouvez utiliser urllib.unquote
import re
def unquote(url):
return re.compile('%([0-9a-fA-F]{2})',re.M).sub(lambda m: chr(int(m.group(1),16)), url)