作者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://webptt.com/cn.aspx?n=bbs/Python/M.1532584523.A.874.html
1F:推 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
2F:推 b24333666: 改成 n += 1会比较好看 07/27 08:21
谢谢楼上
※ 编辑: a78998042a (114.45.204.14), 07/27/2018 13:27:20
3F:→ ah7675: twisted 07/28 18:18