[問題] 巢型 try 寫法
請教各位先進,還請大家教導
最近在寫爬蟲程式
因為有網頁需要等待,網頁的元素不一定能立刻抓取
若設定時間等待網頁跑完則會拖慢速度
因此現在的寫法是,當抓不到報錯後直接重來
如果原始爬蟲 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
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
07/27 08:21, 2F
謝謝樓上
※ 編輯: a78998042a (114.45.204.14), 07/27/2018 13:27:20
→
07/28 18:18,
7年前
, 3F
07/28 18:18, 3F