Search code examples
pythonurl

How to join absolute and relative urls?


I have two urls:

url1 = "http://127.0.0.1/test1/test2/test3/test5.xml"
url2 = "../../test4/test6.xml"

How can I get an absolute url for url2?


Solution

  • You should use urlparse.urljoin :

    >>> import urlparse
    >>> urlparse.urljoin(url1, url2)
    'http://127.0.0.1/test1/test4/test6.xml'
    

    With Python 3 (where urlparse is renamed to urllib.parse) you could use it as follows:

    >>> import urllib.parse
    >>> urllib.parse.urljoin(url1, url2)
    'http://127.0.0.1/test1/test4/test6.xml'