Python urllib2 多次尝试 urlopen()
简单来说,我想要对一系列网址进行循环处理,如果其中一个网址出错了,我希望能继续尝试下一个网址。
我试过下面的代码,但可惜的是,如果第一个网址不行,就会报错。
servers = ('http://www.google.com', 'http://www.stackoverflow.com')
for server in servers:
try:
u = urllib2.urlopen(server)
except urllib2.URLError:
continue
else:
break
else:
raise
有什么好的建议吗?
提前谢谢大家。
2 个回答
0
servers = ('http://www.google.com', 'http://www.stackoverflow.com')
for server in servers:
try:
u = urllib2.urlopen(server)
except urllib2.URLError:
continue
else:
break
else:
raise
这段代码的意思是,如果网址连接没有出错,就会跳出这个循环(也就是else: break
那部分)。
你是想让第二个选项只在第一个失败的时候使用吗?
补充说明:我原以为在for循环后面的else:
应该会因为break
而触发错误,但我做了个简单测试发现并不是这样……因为我对for/else的理解有误
0
所以问题其实是用户操作错误。我在尝试一些奇怪的域名,比如“wegwegwe.com”,但我列表里根本没有一个能用的域名,结果最后就出现了错误。
就是用户操作的问题。