如何在Python中给定两个绝对url来构造相对url
是否有内置函数可以获取如下所示的网址: ../images.html
给定如下所示的基本网址: http://www.example.com/faq/index.html< /code> 和目标 url,例如
http://www.example.com/images.html
我检查了 urlparse 模块。我想要的是 urljoin() 函数的对应部分。
Is there a builtin function to get url like this: ../images.html
given a base url like this: http://www.example.com/faq/index.html
and a target url such as http://www.example.com/images.html
I checked urlparse module. What I want is counterpart of the urljoin() function.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使用 urlparse.urlparse 查找路径和 posixpath 版本os.path.relname 查找相对路径。
(警告:这适用于 Linux,但可能不适用于 Windows):
You could use urlparse.urlparse to find the paths, and the posixpath version of os.path.relname to find the relative path.
(Warning: This works for Linux, but may not for Windows):
第一个想到的解决方案是:
当然,这需要URL解析->域名对比(!!)->路径重写(如果是这种情况)->重新添加查询和片段。
编辑:更完整的版本
然后
编辑:现在使用 os.path 的 posixpath 实现使其也可以在 Windows 下工作。
The first solutions that comes to mind is:
Of course, this requires URL parsing -> domain name comparison (!!) -> path rewriting if that's the case -> re-adding query and fragment.
Edit: a more complete version
Then
Edit: now using the
posixpath
implementation ofos.path
to make it work under windows too.运行“测试”看看它是否有效:P
Run 'tests' to see if it works :P