作者a78998042a ()
看板Python
標題[問題] 巢型 try 寫法
時間Thu Jul 26 13:55:15 2018
請教各位先進,還請大家教導
最近在寫爬蟲程式
因為有網頁需要等待,網頁的元素不一定能立刻抓取
若設定時間等待網頁跑完則會拖慢速度
因此現在的寫法是,當抓不到報錯後直接重來
如果原始爬蟲 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
推 csro7788: While? 07/26 14:11
疑!? 一語點醒夢中人 XD
確實如果把 f1_f 改成有pass的版本就可行了
while n < 10:
n = n + 1
f1_f()
感謝
※ 編輯: a78998042a (114.45.204.14), 07/26/2018 14:31:20
推 b24333666: 改成 n += 1會比較好看 07/27 08:21
謝謝樓上
※ 編輯: a78998042a (114.45.204.14), 07/27/2018 13:27:20
→ ah7675: twisted 07/28 18:18