我正在尝试这个简单的代码,但该死的休息不起作用...什么是错的?如何摆脱一段时间的尝试/除了一段时间? [Python]
while True:
for proxy in proxylist:
try:
h = urllib.urlopen(website, proxies = {'http': proxy}).readlines()
print 'worked %s' % proxy
break
except:
print 'error %s' % proxy
print 'done'
它应该离开,而当连接工作,回去试试其他代理,如果它没有
好吧,这里是我在做什么
我试图检查一个网站,如果它改变了,它必须跳出来继续到脚本的其余部分,但是当代理不连接时,我从变量中得到错误,因为它是空的,所以我希望这是为了工作作为循环来尝试一个代理,如果它工作,继续脚本,脚本的结束,回去尝试下一个代理,如果下一个不工作,它会回到该开始尝试第三代理,等等....
我想这样
while True:
for proxy in proxylist:
try:
h = urllib.urlopen(website, proxies = {'http': proxy})
except:
print 'error'
check_content = h.readlines()
h.close()
if check_before != '' and check_before != check_content:
break
check_before = check_content
print 'everything the same'
print 'changed'
你知道'break'也打破了for循环。所以你的'break'不会从while循环中跳出来,它会跳出直接循环。 – jcao219 2010-07-07 21:42:51
你绝对不应该使用裸体'excepts'!抓住一个特定的错误总是更好! – jathanism 2010-07-07 21:50:19