【发布时间】:2019-04-02 17:06:15
【问题描述】:
我正在尝试使用 Python 3 的 urllib.parse 连接基本 URL url1 和相对路径 url2,但没有得到想要的结果。此外,我尝试使用os.path.join(不打算用于此目的)和简单的string concatenation using .format():
import os.path
import urllib.parse
url1 = "www.sampleurl.tld"
url2 = "/some/path/here"
print(urllib.parse.urljoin(url1, url2))
# --> "/some/path/here"
print(os.path.join(url1, url2))
# --> "/some/path/here"
print("{}{}".format(url1, url2))
# --> "www.sampleurl.tld/some/path/here" (desired output)
简单的字符串连接返回所需的绝对 url。但是,这种方法似乎很幼稚,也不是很优雅,因为它假定url2 以/ 开头,但情况可能并非如此。当然,我可以通过调用url2.startswith('/') 来检查这一点,并将字符串连接更改为"{}/{}".format(url1, url2) 以提供所需的灵活性,但我仍然想知道如何通过urllib.parse 以正确的方式做到这一点。
【问题讨论】:
标签: python python-3.x url urllib urlparse