에러 핸들러 구현
Last updated
Last updated
지속적인 크롤러를 반복 실행하다 보면, 시간이 지난 후에는 해당 사이트의 구조가 바뀌었을 수도 있고, 사용하는 라이브러리의 문제가 발생할 수도 있다. 이러한 경우에도 크롤러는 상시로 크롤링을 하되 에러문구를 직접 확인할 수 있도록 로그를 적어주는 작업을 실시한다.
crawler_ing_log.log : 현재 크롤링 중인 게시판 로깅
crawler_log.log : 크롤링 도중에 발생한 Error 로깅
crawler_time.log : 크롤러가 시작한 시각, 종료한 시각, 실행한 시각을 로깅
대상 URL 마다 crawling 과 stay_cnt 라는 속성을 생성한다. 만약 크롤링 도중에 오류 발생 시에 대상 URL의 crawling을 false로 바꿔주며 stay_cnt를 10으로 설정한다. 이 stay_cnt는 크롤러를 실행할 때마다 1씩 감소하며, 0이 되었을 시에 crawling 속성을 true로 두어서 다시 재 크롤링하게 설정한다.
이 작업은 만약 크롤러가 실패하였을 시에, 대상 서버에 부담을 주지 않기 위함도 포함하고 있으며, 크롤링이 불가능한 사이트를 크롤링을 시도하는 시간적 손실도 제거하기 위함을 포함하고 있다.