0

我在这里通过抓取得到了一些非常混乱的 url,问题是它们在路径和查询字符串中包含空格或其他特殊字符,这是一些示例

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

那么,是否有一种简单而可靠的方法来转义 url,以便我可以将它们传递给 urlopen?我尝试了 urlib.quote,但它似乎也逃避了查询字符串中的“?”、“&”和“=”,而且它似乎也逃避了协议,目前,我想做的是使用正则表达式分隔协议、路径名和查询字符串并将它们分别转义,但在某些情况下它们没有正确分隔任何建议都值得赞赏

4

1 回答 1

5

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'

但这是半手动搞砸的相当棘手的事情。

于 2012-06-17T03:10:28.090 回答