2016-06-13 18 views
-6

エラーが発生したときにこの機能を再試行する方法、最大で3回の再試行を行う方法?このwhileループ内で3回を再試行する方法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") 

答えて

1

ループ条件にカウンタを追加できます。コメントを

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

すてきな解決策。マイナーフィードバックポイント: 'expect'は' except'にする必要があります:) –

+0

もちろん:)固定 –

0

が足りません評判: 小伝説液が間違って私の知る限りです。 "continue"ステートメントは、最も近いLoopを継続します。この場合、「while True」ループになるため、エラーが常に発生した場合でも無限に実行されます。

イタイカロは右です:単にカウンタを使用

EDIT:わかりました...間違った答えは削除されました。