我正在尝试这个简单的代码,但是该死的中断不起作用。。。怎么了?
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'
它应该在连接工作时离开,如果没有,就回去尝试另一个代理
好吧,这就是我要做的
我试着去检查一个网站,如果它改变了,它必须在一段时间内中断才能继续脚本的其余部分,但是当代理没有连接时,我从变量中得到错误,因为它是空的,所以我想要的是work a s loop尝试一个代理,如果它成功了,继续脚本,然后脚本结束,返回并尝试下一个代理,如果下一个代理不起作用,则返回到开始时尝试第三个代理,依此类推。。。。
我在尝试这样的事情
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'
您只会脱离
for
循环,因此永远不会离开while循环,并重新开始对proxylist
进行一次又一次的迭代。只需省略周围的while循环,我实际上不理解为什么首先将代码封装在while True
中。你只是跳出了
for
循环——而不是while
循环:您可以使用自定义异常,然后捕获它:
相关问题 更多 >
编程相关推荐