간단한 코드로 바로 결과가 나오는 프로그램이라면 상관 없지만
긴 시간 돌려놔야 하는 코드에서 중간에 에러가 발생하여 동작이 끊긴다면
그야말로 말잇못... 다시 처음부터 할 생각에 아득해진다.
간만에 크롤링 작업을 하고 있었는데 URL이 유효하지 않은 케이스가 있어서
그 때의 에러 처리를 해주었다.
try:
URL = lines[i]
options = webdriver.ChromeOptions()
options.add_argument('headless') # 새 창 띄우지 않음
driver = webdriver.Chrome(executable_path='chromedriver', options=options)
driver.get(url=URL)
target = driver.find_element(By.TAG_NAME, "li").text
except KeyboardInterrupt: return
except: print(error, "사이트 방문 불가 등의 에러 발생")
else:
total_word_in_domain += target.split()
finally:
print(URL, 'success\n')
i += 1
total_url_count += 1
try:
내가 수행할 작업들
except 예외 발생시: 수행할 작업
except 또 다른 예외 발생시: 수행할 작업
else: 오류가 발생하지 않았을 경우 수행할 작업
finally: 오류가 났던 안 났던 try 작업이 다 끝나면 수행할 작업
처음에 KeyboardInterrupt 없이
URL 오류가 발생했을 때 로그만 출력하고 다음 단계로 넘겼더니,
프로그램을 종료하고 싶을 때 Ctrl + C 를 눌러도 에러라고 인식을 안 하는지 종료가 안 되는 거다ㅋㅋㅋ
그래서 bash를 창 채로 닫아버렸는데 무튼,
KeyboardInterrupt 상황에서는 return 시켜서 나올 수 있게 해주고,
이외의 어떤 모든 에러가 발생했을 때는 로그만 찍고 계속 다음 작업을 진행할 수 있게 해주었다.
'main > Python' 카테고리의 다른 글
[수강후기] 유데미(Udemy) 【한글자막】 AI 만들기 : 강화학습과 인공신경망 완전 정복 (0) | 2024.03.31 |
---|---|
파이썬 크롤링 하기 Selenium 셀레니움 사용법 (0) | 2022.04.07 |
error: bad character range ”-= at position 2 (0) | 2022.04.07 |
파이썬 정규표현식 re 모듈 사용하여 특수문자 골라내기 (0) | 2022.04.07 |
파이썬 딕셔너리 key pop하기 del 삭제하기, for문 도는 중 삭제 불가능 에러 (0) | 2022.04.07 |