python3 URL拼接代码
发布日期:2021-05-14 14:11:01 浏览次数:18 分类:精选文章

本文共 1031 字,大约阅读时间需要 3 分钟。

from urllib.parse import urljoin
from urllib.parse import urlparse
from urllib.parse import urlunparse
from posixpath import normpath
def myjoin(base, url):
url1 = urljoin(base, url)
arr = urlparse(url1)
path = normpath(arr[2])
return urlunparse((arr.scheme, arr.netloc, path, arr.params, arr.query, arr.fragment))
# 示例1:基本使用
print(myjoin("http://www.baidu.com", "abc.html")) # 输出: http://www.baidu.com/abc.html
# 示例2:相对路径处理
print(myjoin("http://www.baidu.com", "/../../abc.html")) # 输出: http://www.baidu.com/abc.html
# 示例3:多层相对路径处理
print(myjoin("http://www.baidu.com/xxx/yy/zz/xyz", "./../../abc.html")) # 输出: http://www.baidu.com/abc.html
# 示例4:查询参数保留
print(myjoin("http://www.baidu.com", "abc.html?key=value&m=x")) # 输出: http://www.baidu.com/abc.html?key=value&m=x

这段代码定义了一个自定义的URL合并函数myjoin,用于将一个相对URL与一个基准URL合并。函数内部使用urljoin获取最终URL,通过urlparse解析URL,提取路径部分并进行规范化处理,最后用urlunparse重新组合生成最终的绝对URL。

通过多个示例展示了函数的实际应用场景:

  • 基本的URL合并
  • 处理相对路径(如../或./)
  • 多层相对路径处理
  • 保留查询参数
  • 该函数适用于需要在程序中构建完整的URL时,能够自动处理不同类型的相对路径,并确保URL的规范性和一致性。

    上一篇:PAT B1008 数组元素循环右移问题 (20分) 三种解法
    下一篇:【实战】Python将微信文章保存为PDF

    发表评论

    最新留言

    哈哈,博客排版真的漂亮呢~
    [***.90.31.176]2025年04月09日 23时42分23秒

    关于作者

        喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
    -- 愿君每日到此一游!

    推荐文章