首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何连接绝对urls和相对urls?

如何连接绝对urls和相对urls?
EN

Stack Overflow用户
提问于 2011-11-22 16:33:00
回答 5查看 99K关注 0票数 145

我有两个urls:

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

如何获取url2的绝对url?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-11-22 16:35:35

您应该使用urlparse.urljoin

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

使用Python3(其中是urlparse is renamed to urllib.parse),您可以使用use it as follow

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

Stack Overflow用户

发布于 2019-01-16 21:17:34

如果相对路径由多个部分组成,则必须分别连接它们,因为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'

另请参阅:How to join components of a path when you are constructing a URL in Python

票数 19
EN

Stack Overflow用户

发布于 2014-01-22 01:08:55

es = ['http://127.0.0.1', 'test1', 'test4', 'test6.xml']
base = ''
map(lambda e: urlparse.urljoin(base, e), es)
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8223939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档