2016-06-13 2 views
-6

오류가 발생했을 때이 함수를 다시 시도하는 방법, 최대 세 번 재시도?루프 제한 시간 동안

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

좋은 해결책. 사소한 피드백 지점 :'expect'는'except'이어야합니다 :) –

+0

물론 :) –

0

충분하지 평판 : 작은 전설 솔루션은 잘못된 내가 아는 한 것입니다. "continue"문은 가장 가까운 루프를 계속합니다. 이 경우에는 "while true"루프가되므로 오류가 항상 발생하면 무한 실행됩니다.

Itay 카로은 맞다 : 단순히 카운터를 사용

편집 : 좋아 ... 잘못된 대답은 삭제되었습니다.