栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python:如何解析包含“ ..”的URL

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python:如何解析包含“ ..”的URL

有一个简单的解决方案使用

urllib.parse.urljoin

>>> from urllib.parse import urljoin>>> urljoin('http://www.example.com/foo/bar/../../baz/bux/', '.')'http://www.example.com/baz/bux/'

但是,如果没有结尾斜杠(最后一个组件是文件,而不是目录),则最后一个组件将被删除。

此修复程序使用urlparse函数提取路径,然后使用(的posixpath版本)

os.path
对组件进行规范化。用斜杠补偿一个神秘的问题,然后将URL重新连接在一起。以下是
doctest
能够的:

from urllib.parse import urlparseimport posixpathdef resolve_components(url):    """    >>> resolve_components('http://www.example.com/foo/bar/../../baz/bux/')    'http://www.example.com/baz/bux/'    >>> resolve_components('http://www.example.com/some/path/../file.ext')    'http://www.example.com/some/file.ext'    """    parsed = urlparse(url)    new_path = posixpath.normpath(parsed.path)    if parsed.path.endswith('/'):        # Compensate for issue1707768        new_path += '/'    cleaned = parsed._replace(path=new_path)    return cleaned.geturl()


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/652031.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号