Ich habe eine Liste mit URLs mit Escapezeichen. Diese Zeichen wurden festgelegt, urllib2.urlopen
wenn die HTML-Seite wiederhergestellt wird:
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
Gibt es eine Möglichkeit, sie in Python wieder in ihre entflohene Form zu verwandeln?
PS: Die URLs sind in utf-8 codiert
urllib.parse.unquote
urllib.request.unquote
Und wenn Sie verwenden, können
Python3
Sie verwenden:import urllib.parse urllib.parse.unquote(url)
quelle
urllib.request.unquote
oder
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)'
quelle
Sie können verwenden
urllib.unquote
quelle
b"\xe9\xa6\x96\xe9\xa1\xb5".decode("utf-8")
(jetzt mit etwas modernerer Python-Syntax) in eine Unicode-Zeichenfolge konvertieren .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)
quelle
urllib2
ist nicht Teil von Standard Python Distri.re
ist.