[問題] 巢型 try 寫法

看板Python作者時間7年前發表 (2018/07/26 05:55), 7年前編輯推噓2(201)
留言3則, 3人參與, 7年前最新討論串1/1
請教各位先進,還請大家教導 最近在寫爬蟲程式 因為有網頁需要等待,網頁的元素不一定能立刻抓取 若設定時間等待網頁跑完則會拖慢速度 因此現在的寫法是,當抓不到報錯後直接重來 如果原始爬蟲 function 為 get_f,可能會產生數種錯誤 E1、E2、E3.. 我定義 def f1_f: try: get_f() except E1: get_f() else: get_f() 因為策略是報錯後重來,所以把 f1_f 包裹 定義 def f2_f: try: f1_f() except E1: f1_f() else: f1_f() 然後定義f3_f,包住f2_f。再定義f4_f,包住f3_f...... 因為還是要避免是其他原因造成,所以期望10次後停止 想詢問有什麼比較簡潔的寫法,可以不用用一層包一層的方式寫 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.45.204.14 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1532584523.A.874.html

07/26 14:11, 7年前 , 1F
While?
07/26 14:11, 1F
疑!? 一語點醒夢中人 XD 確實如果把 f1_f 改成有pass的版本就可行了 while n < 10: n = n + 1 f1_f() 感謝 ※ 編輯: a78998042a (114.45.204.14), 07/26/2018 14:31:20

07/27 08:21, 7年前 , 2F
改成 n += 1會比較好看
07/27 08:21, 2F
謝謝樓上 ※ 編輯: a78998042a (114.45.204.14), 07/27/2018 13:27:20

07/28 18:18, 7年前 , 3F
twisted
07/28 18:18, 3F
文章代碼(AID): #1RMM9BXq (Python)