반응형

Python3 selenium 모듈 에러 노트

모듈 개요

일반적으로 웹 크롤링을 할 경우 JS를 활용하기 위해서 많이 사용된다. 관련 서적도 있기는 하다.

배경

약 300만개의 이미지가 프로젝트에서 필요해 간단하게 크롤링을 하면서 발견한 오류이다.

개발 환경

windows 10
python 3.6.8
vs code
chromedriver 74.xx

문제점

증상

살 사용하던 중 webdriver 인스턴스에서 호출되는 것은 문제가 안되는데, 메서드로 호출된 하위 element들이나 element 중에서 find_elements_by_class_name(), find_element_by_xpath(), find_elements_by_xpath() 같은 메서드를 호출하게 되면, 프로그램이 불안정하게 종료가 되어 버리는 현상이 발견되었다.

비정상적인 종료이기 때문에 chromedriver를 headless 옵션으로 실행할 경우 프로그램이 종료가 되어도 계속 프로세스가 유지 되는 현상도 있었다.

원인

execute_script()를 호출한 이후에 해당 증상이 나타난다. 전후 관계를 보았을때 selenium 모듈내의 버그로 생각된다. 에러메시지를 추적을 하면, errorNo 까지 호출은 하지만, 비정상적인 프로그램 종료가 되는 것을 보아 예외처리 부분도 아직 안된 것으로 보인다.

(임시) 해결 방법

오류를 신고를 해야 할 듯한다(귀찮다). execute_script() 실행과정에서 문제가 있고, 그 문제가 나중에 터지는 것으로 판단이 되기 때문에 일단은 webdriver 인스턴스를 refresh()를 호출하여 갱신 시킨후에 문제가 되는 메서드를 호출을 해봤다. 결과는 잘된다.문제는 중간에 이 과정으로 인해서 시간이 더 걸리게 된다.

반응형

+ Recent posts