【问题标题】:how to compare 2 url's ignoring s in https://如何比较 2 个 url 在 https:// 中忽略 s
【发布时间】:2017-04-05 20:37:51
【问题描述】:

我想比较 2 个网址的 a="https://example.com/rghj.mp3" 和 b="http://example.com/rghj.mp3" 。我想创建一个忽略 https 中的 s 并比较这两个 url 并评估为 True 的条件。最好的方法是什么?我正在尝试做 a.split("//:")[1]==b.split("//:")[1]。此代码是否会因任何 url 格式而中断?

【问题讨论】:

标签: python-3.x http url https


【解决方案1】:

又快又脏:

a.replace("https://","http://") == b.replace("https://","http://")

根据您的用例,您可能希望采用更稳健的方法。

from urllib.parse import urlparse
a_url = urlparse(a)
b_url = urlparse(b)
match = a_url.netloc == b_url.netloc

【讨论】:

  • 是的,适用于上述情况..对于像这样的网址audio.simplecast.com/rghj.mp3 怎么样?想要更通用
  • 你的意思是快速和肮脏的版本?然后你可以做a.replace("https://","").replace("http://","")。我不建议你进入这个假设的兔子洞,并使用 urlparse。
  • 好的,谢谢。您上面提到的 netloc 只给出了中间部分。如何在不连接不同部分的情况下获得除方案之外的整个部分?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-24
  • 1970-01-01
  • 2018-03-29
  • 2022-08-24
  • 1970-01-01
相关资源
最近更新 更多