Python urllib2确保url格式正确

时间:2011-11-25 22:37:33

标签: python httprequest urllib2

ValueError: unknown url type in urllib2, though the url is fine if opened in a browser中,有人指出在调用opener.open()之前必须确保传递给它的网址格式正确(即 - 具有HTTP网址的“http://”前缀,“ftp://”用于FTP等。)

这个问题被提炼为“是否有可能使用一些内置函数自动处理此类情况,或者我必须使用后续字符串连接进行错误处理?”或者换一种方式:是否有内置的Python用于执行此操作?

然而,这个精致的问题从未得到回答,因此在这里重新提问。做自己很容易,但为什么要重新发明轮子呢?

2 个答案:

答案 0 :(得分:3)

在Python中,接受和异常是很常见的,而不是提前检查值。所以这样的事情对我来说是完美的,可能对大多数python程序员来说都是:

try:
    opener.open(url)
except ValueError,e:
    # fix url and try again
    # ...

但我不知道你想如何自动处理没有前缀的网址。前缀定义了要使用的协议。如果没有给出,你会如何“猜测”它?

答案 1 :(得分:0)

如果你想默认预先http://,你真的需要自己做。没有理由认为这比预先设置更好。 gopher:mailto:news: - 有很多协议。

仅仅因为今天的网络浏览器隐藏了用户的http://前缀并没有使其过时。