Tengo una lista que contiene URL con caracteres de escape en ellos. Esos caracteres han sido configurados por urllib2.urlopen
cuando recupera la página 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
¿Hay una manera de transformarlos de nuevo a su forma sin escaparse en python?
PS: Las URL están codificadas en utf-8
Documentos oficiales
urllib.unquote(
string)
Reemplace
%xx
escapes por su equivalente de un solo carácter.Ejemplo:
unquote('/%7Econnolly/')
produce'/~connolly/'
.
Y luego simplemente decodificar.
Actualización: Para Python 3, escriba lo siguiente:
urllib.parse.unquote(url)
Python 3 documentos.
Y si estás usando Python3
podrías usar:
urllib.parse.unquote(url)
o 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)'
Puedes usar 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)