Как цитировать не поддерживаемый URL-адрес подстроки в python


Ниже приведен URL:

Https://www.siasat.pk/forum/showthread.php?553205-قطری-ہو-یا-برطانوی-خط-کرپشن-کی-نشانی-ہے&s=be8abfc34aa0ca5ddf9b6d40b2acad4b&p=4505464#post4505464

req = Request(url, headers={'User-Agent': 'Mozilla/5.0'})

Если я попытаюсь urlopen(req), это даст исключение как Введите описание изображения здесь

Я хочу преобразовать символы, чтобы сделать его допустимым URL, как получить эту подстроку и преобразовать в допустимый utf 8 из quote

Если я попытаюсь процитировать (url) полный, это сделает он недействителен.

1 2

1 ответ:

Вам нужно расширить часть запроса и процитировать только эту часть:

from urllib.parse import urlsplit, urlunsplit, quote
url_split = urlsplit(url)
query = quote(url_split.query)
url_quoted = urlunsplit(url_split._replace(query=query))
# 'https://www.siasat.pk/forum/showthread.php?553205-%D9%82%D8%B7%D8%B1%DB%8C-...'