Python - 继续不在 for 循环中工作



我使用 python 请求连接到一个网站,并且工作正常。

我的问题是我有一个我使用的代理列表,如果其中一个代理 ip 返回 404 错误,那么我需要我的 for 循环转到循环顶部并继续,直到我得到 200 的响应。

当我的循环遇到异常/400-503 错误时,它会返回到代码顶部,但只是离开循环,并继续代码。

快速说明:代理数组有 6 个 ip,循环 dosent 将它们全部变为 true。

有什么问题,我使用以下代码,继续?

for l in list:  
    for a in otherlist:
        for proxy in randomProxy:
            print 'Using Proxy: ', proxy
            try:
                r = requests.get(url, timeout=20, headers=headers, proxies=proxy)
                if r.status_code == 200:
                    response = r
                    print 'Good Proxy: ', proxy
                    pass
                else:
                    print 'Bad Proxy: ', proxy
                    continue
            except requests.exceptions.RequestException as e:
                # A serious problem happened, like an SSLError or InvalidURL
                print "Error: {}".format(e)
                continue

真的不明白为什么会这样,也许我弄错了继续的工作方式?

这可能有效

for proxy in randomProxy:
    print 'Using Proxy: ', proxy
    try:
        r = requests.get(url, timeout=20, headers=headers, proxies=proxy)
        if r.status_code == 200:
            response = r
            print 'Good Proxy: ', proxy
            break
        else:
            print('Bad Proxy:', proxy)
            print('Proxy is not working!')
            continue
    except:
         print('Bad Proxy:', proxy)
         print('Proxy is not working!')

最新更新