2016-06-13 225 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」循環,所以當錯誤一直髮生時它仍然是無限的運行。

伊泰·卡羅是正確的:只需使用一個計數器

編輯:好吧......錯誤的答案被刪除。