我正在开发一个需要在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处的查询中.
不可能有两个’?’在一个网址,所以它应该适用于所有网址.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。