Python unescape URL

时间:2010-11-30 09:29:33

标签: python url

我有一个这种形式的网址 - http:\\/\\/en.wikipedia.org\\/wiki\\/The_Truman_Show。我怎样才能使它成为正常的网址。我尝试使用urllib.unquote但没有取得多大成功。

我总是可以使用正则表达式或一些简单的字符串替换东西。但我相信有更好的方法可以解决这个问题......

3 个答案:

答案 0 :(得分:11)

urllib.unquote用于将URL中的%xx转义码替换为它们所代表的字符。它对此没有用。

您的“简单字符串替换内容”可能是最佳解决方案。

答案 1 :(得分:5)

您是否尝试过使用json模块中的json.loads

>>> json.loads('"http:\\/\\/en.wikipedia.org\\/wiki\\/The_Truman_Show"')
'http://en.wikipedia.org/wiki/The_Truman_Show'

我正在展示的输入并不完全是你所拥有的。我用双引号把它包起来使它成为有效的json。

当你第一次从json那里得到它时,你是如何解码它的?这可能就是问题所在。

答案 2 :(得分:1)

太幼稚了 - 当你可以自己转换URL时,寻找一些库函数。 由于没有其他可见规则,但“/”替换为“\ /”,您只需将其替换回来:

def unescape_this(url):
    return url.replace(r"\\/", "/")