如何join绝对和相对的url?

我有url:

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

如何获得url2的绝对url?

你应该使用urlparse.urljoin :

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

使用Python 3(其中urlparse重命名为urllib.parse ),您可以使用它如下 :

 >>> import urllib.parse >>> urllib.parse.urljoin(url1, url2) 'http://127.0.0.1/test1/test4/test6.xml' 
 es = ['http://127.0.0.1', 'test1', 'test4', 'test6.xml'] base = '' map(lambda e: urlparse.urljoin(base, e), es) 
 >>> from urlparse import urljoin >>> url1 = "http://www.youtube.com/user/khanacademy" >>> url2 = "/user/khanacademy" >>> urljoin(url1, url2) 'http://www.youtube.com/user/khanacademy' 

简单。