Декодировать экранированные символы в URL
79219 просмотра
5 ответа
У меня есть список, содержащий 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?
PS: URL-адреса закодированы в UTF-8
Автор: Tony Источник Размещён: 12.11.2019 09:38Ответы (5)
125 плюса
urllib.unquote(
строка)
Замените
%xx
escape-символы их односимвольным эквивалентом.Пример:
unquote('/%7Econnolly/')
доходность'/~connolly/'
.
А потом просто расшифровать.
Обновление: для Python 3 напишите следующее:
urllib.parse.unquote(url)
Автор: Ignacio Vazquez-Abrams
Размещён: 15.11.2011 01:09
25 плюса
И если вы используете, Python3
вы можете использовать:
urllib.parse.unquote(url)
Автор: Vladir Parrado Cruz
Размещён: 04.01.2016 03:03
9 плюса
или же 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)'
Автор: dli
Размещён: 10.12.2015 04:27
7 плюса
4 плюса
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)
Автор: mistercx
Размещён: 26.03.2013 12:27
Вопросы из категории :
- python Обработка XML в Python
- python Как я могу использовать Python itertools.groupby ()?
- python Python: На какой ОС я работаю?
- python Как я могу создать непосредственно исполняемое кроссплатформенное приложение с графическим интерфейсом на Python?
- python Вызов функции модуля с использованием его имени (строки)
- python Звук Питона («Колокол»)
- python Regex и unicode
- python Создать зашифрованный ZIP-файл в Python
- python Создайте базовый итератор Python
- python Функция транспонирования / распаковки (обратная сторона zip)?
- escaping Экранирование строк HTML с помощью jQuery
- escaping Как избежать <и> внутри тегов <pre>
- escaping Как экранировать текст для регулярного выражения в Java
- escaping How to replace a character by a newline in Vim
- escaping Передать строку PHP в переменную JavaScript (и экранировать символы новой строки)
- escaping Регулярное выражение для строки в кавычках с кавычками
- escaping Как избежать символов в строке Delphi
- escaping Избегайте строки для шаблона замены sed
- escaping Как я могу избежать квадратных скобок в предложении LIKE?
- escaping Как сопоставить строки в двойных кавычках с экранированными символами в двойных кавычках?