Декодирование экранированных символов в URL
у меня есть список, содержащий URL-адреса с экранированными символами в них. Эти символы были установлены с помощью urllib2.urlopen
когда он восстанавливает 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
есть ли способ преобразовать их обратно в их неоткрытую форму в python?
С. П.: URL-адреса в кодировке UTF-8
5 ответов:
urllib.unquote(
строка)
заменить
%xx
экранирует их односимвольный эквивалент.пример:
unquote('/%7Econnolly/')
доходность'/~connolly/'
.а потом просто расшифровать.
обновление: Для Python 3 напишите следующее:
urllib.parse.unquote(url)
или
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)'
можно использовать
urllib.unquote