Если ваш относительный путь состоит из нескольких частей, вы должны объединить их отдельно, поскольку urljoin
заменит относительный путь, а не соединит его. Самый простой способ сделать это - использовать posixpath
.
>>> import urllib.parse
>>> import posixpath
>>> url1 = "http://127.0.0.1"
>>> url2 = "test1"
>>> url3 = "test2"
>>> url4 = "test3"
>>> url5 = "test5.xml"
>>> url_path = posixpath.join(url2, url3, url4, url5)
>>> urllib.parse.urljoin(url1, url_path)
'http://127.0.0.1/test1/test2/test3/test5.xml'
См. Также: Как объединить компоненты пути при создании URL-адреса в Python