假设我有一个url,或者可能不是HTTPS,谁是我不控制的主机名,但遵循如下格式:
http://example.com/special/content[或]
https://example.com/special/content
使用Python将scheme更改为https和路径更改为/something/else的Python方法是什么
我目前的做法是:
from urlparse import urlsplit, urljoin, urlunsplit
currenturl = "http://example.com/some/content"
parts = list(urlsplit(urljoin(currenturl, "/something/else")))
parts[0]="https"
newurl = urlunsplit(parts)
有什么建议吗?
建议(来自@ignacio vazquez abrams)
from urlparse import urlparse, urljoin, urlunparse
currenturl = "http://example.com/some/content"
parts = list(urlparse(currenturl))
parts[0]="https"
parts[2]="/something/else" # If only path needed changing (or see bellow...)
newurl = urlunparse(parts)
newurl = urljoin(newurl, "/something/else") # If we need to rewrite everything
# after network loc
最佳答案
你离得太近了。使用urlparse.urlparse()
将其拆分,取出您关心的部分,然后使用urlparse.urlunparse()
将其重新组合起来。
关于python - 使用源网址创建具有不同路径和方案的新网址的pythonic方式是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5342114/