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的opencv还有face_r...
说到Pooling,相信学习过CNN的朋友们都不会感到陌生。Poolin...
记得大一学Python的时候,有一个题目是判断一个数是否是复数...
文章目录 3 直方图Histogramplot1. 基本直方图的绘制 Basic ...
文章目录 5 小提琴图Violinplot1. 基础小提琴图绘制 Basic v...
文章目录 4 核密度图Densityplot1. 基础核密度图绘制 Basic ...