Python中的URL解析 – 规范化路径中的双斜杠

前端之家收集整理的这篇文章主要介绍了Python中的URL解析 – 规范化路径中的双斜杠前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在开发一个需要在HTML页面中解析URL(主要是HTTP URL)的应用程序 – 我无法控制输入,其中一些是正如预期的那样有点混乱.

我经常遇到的一个问题是,在解析和加入路径部分中包含双斜线的URL时,urlparse是非常严格的(甚至可能是错误的?),例如:

testUrl = 'http://www.example.com//path?foo=bar'
urlparse.urljoin(testUrl,urlparse.urlparse(testUrl).path)

而不是预期的结果http://www.example.com//path(甚至更好,使用标准化的单斜杠),我最终得到http:// path.

我正在运行这样的代码的原因是因为这是我到目前为止发现的唯一一种从URL中删除查询/片段部分的方法.也许有更好的方法,但我找不到一个.

任何人都可以推荐一种方法来避免这种情况,或者我应该使用(相对简单,我知道)正则表达式来自我规范化路径?

最佳答案
如果你只想获得没有查询部分的url,我会跳过urlparse模块,然后执行

testUrl.rsplit('?')

url将位于返回列表的索引0和索引1处的查询中.

不可能有两个’?’在一个网址,所以它应该适用于所有网址.

猜你在找的Python相关文章