逃避查询字符串包含特殊字符与Python

问题描述:

我得到了一些相当混乱的网址,我通过刮这里得到的,问题是,它们包含在路径和查询字符串中的空格或其他特殊字符,下面是一些例子逃避查询字符串包含特殊字符与Python

http://www.example.com/some path/to the/file.html 
http://www.example.com/some path/?file=path to/file name.png&name=name.me 

那么,有没有一种简单而强大的方式来逃脱网址,以便我可以将它们传递给urlopen? 我试过urlib.quote,但它似乎在查询字符串中也跳过'?','&'和'=',它似乎也逃避了协议,目前,我正在尝试做的是使用正则表达式来分离协议,路径名,查询字符串,并分别对其进行转义,但也有他们的arent分离正常 任何建议表示赞赏

+0

如果唯一的问题是空格,那么'url_str.replace('','%20')'有什么问题? – Dougal

+0

Dougal,有可能需要编码的其他字符,我会很快编辑我的问题, – hndr

urllib.quote会开出一切,除了/默认情况下。你可以通过它的字符列表独自离开作为第二个参数:

urllib.quote('http://www.example.com/some path/?file=path to/file name.png&name=name.me', 
      '/:?&=') 
'http://www.example.com/some%20path/?file=path%20to/file%20name.png&name=name.me' 

但是,这是相当棘手的问题与semimanually搞乱。

+0

谢谢,不知道以前的安全参数... – hndr