все Python 3urllib.parseфункция
urllib.parse.urljoin()
разбор URL
Строит абсолютный URL из базового адреса и относительной ссылки — так, как это делает браузер.
Синтаксис
urllib.parse.urljoin(base, url, allow_fragments=True)
Ссылка с ведущей «/» заменяет весь путь базы, а не дописывается к нему: urljoin('http://h/api/v1', '/users') даёт http://h/users. Без завершающей «/» последний сегмент базы отбрасывается: 'http://h/api' + 'users' → http://h/users. Абсолютная ссылка ('//evil.com/x' или 'https://…') целиком заменяет базу, поэтому склеивать с ней пользовательский ввод небезопасно.
Примеры
from urllib.parse import urljoin
print(urljoin('http://h/api/v1/', '/users')) # → http://h/users
print(urljoin('http://h/api/v1/', 'users')) # → http://h/api/v1/users
print(urljoin('http://h/api/v1', 'users')) # → http://h/api/users
from urllib.parse import urljoin
print(urljoin('http://h/a/b', '//evil.com/x')) # → http://evil.com/x
print(urljoin('http://h/a/', '../x')) # → http://h/x
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности