Как раскодировать процентное кодирование url Python?
Хочу достать данные из url, но ресурс отдает мне закодированный url. Как с помощью Python раскодировать его, как указано в примере на картинке?
Источник: Stack Overflow на русском
Хочу достать данные из url, но ресурс отдает мне закодированный url. Как с помощью Python раскодировать его, как указано в примере на картинке?
Это называется URL-encoded
формат:
import urllib.parse
test = 'https://ru.stackoverflow.com/questions/1507154/%d0%9a%d0%b0%d0%ba-%d1%80%d0%b0%d1%81%d0%ba%d0%be%d0%b4%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d1%82%d1%8c-%d0%bf%d1%80%d0%be%d1%86%d0%b5%d0%bd%d1%82%d0%bd%d0%be%d0%b5-%d0%ba%d0%be%d0%b4%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-url-python'
print(urllib.parse.unquote(test))
Так же если варианты когда в строке всречаются +
тогда используем другой метод:
test = 'example.com/code=HOW%20TO+Articles'
print(urllib.parse.unquote_plus(test))
Так же полезно будет знать как создать закодированную строку самостоятельно:
u = 'что-то что нужно закодировать'
url = urllib.parse.quote(u.encode('utf8'))
print(url)