2016-06-13 230 views
-6

如何在发生错误时重试此功能,最多重试三次?While循环限制时间

def crawl(url): 
     while True:   
      try:      
       data = os.popen('wget -qO- -T10 --tries=1 --header="Accept: text/html" --user-agent="User-Agent: Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11 " %s'% url).read()   
       return data 
      except Exception, e: 
       print e 
       pass 

crawl("http://aaa.com") 

如何重试3次这种循环while里面?

回答

1

您可以为循环条件添加计数器。

c = 0 
while c < 3: 
    try: 
    .. 
    except ... 
    c = c + 1 
+0

不错的解决方案。小反馈意见:'期望'应该''除外:) :)当然:) –

+0

固定 –

0

没有足够的信誉发表评论: 小传奇的解决方法是错误的,因为据我所知。 “继续”声明将继续最近的循环。在这种情况下,它将是“while True”循环,所以当错误一直发生时它仍然是无限的运行。

伊泰·卡罗是正确的:只需使用一个计数器

编辑:好吧......错误的答案被删除。