python - 如何在一段时间内退出 try/except? [Python]

标签 python while-loop

我正在尝试这个简单的代码,但是该死的中断不起作用...出了什么问题?

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,如果没有连接则返回尝试另一个代理

好的,这就是我正在做的

我正在尝试检查一个网站,如果它发生了变化,它必须中断 while 以继续脚本的其余部分,但是当代理未连接时,我从变量中得到错误,因为它是空的,所以我想要的是这个 for work as 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 循环:

running = True
while running:
    for proxy in proxylist:
        try:
            h = urllib.urlopen(website, proxies = {'http': proxy}).readlines()
            print 'worked %s' % proxy
            running = False
        except:
            print 'error %s' % proxy
print 'done'

关于python - 如何在一段时间内退出 try/except? [Python],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3199065/

相关文章:

python - 将新列从 Pandas 添加到 SQLite 表的工作流程

python - GAE : Unit testing DeadlineExceededError

Python:检查列表是否可以通过交换两个元素来排序,只允许交换一次

python - 从 pandas 数据框中删除不完整的年份

java - 我将如何使用 while 循环以及 if else 如果用户输入相同的输入两次并且它将再次尝试

python - 将进度从线程发送到 gui

java - 递归必须解析为类型,但我不知道如何构造它?

javascript - do while javascript - 猜谜游戏循环

php - 检索Mysql数据并按特定顺序打印

linux - (loopcount=loopcount+1) 和 ((loopcount=loopcount+1)) 有什么区别?