Python + Seleniumwire를 이용한 에러 크롤링


• Python의 requests 라이브러리는 서버에서 제공하는 코드만 받아오므로, 브라우저에 의해 랜더링된 페이지의 소스 코드와 차이가 있을 수 있습니다. 반면, selenium 라이브러리는 실제 브라우저를 띄우므로 모든 응답 소스 코드를 가져올 수 있습니다.
• Selenium 웹드라이버 객체의 get_log(”browser”) 메소드를 이용하여 콘솔에 찍히는 에러들을 확인할 수 있습니다. 하지만, Selenium에서는 리퀘스트/응답의 구체적인 정보를 확인할 수 있는 기능이 제공되지 않습니다.
• Seleniumwire는 Selenium 라이브러리를 기본적으로 포함하고 있으며, 리퀘스트 응답값을 확인하여 status code가 400 이상인 정보들을 캡쳐하는 기능을 추가로 제공합니다.
• BeautifulSoup을 이용하여 페이지 내 연결된 페이지들의 정보를 읽어올 수 있습니다. 하지만, 스크립트를 반복적으로 돌려보았을 때 결과값이 변동적이며, 메모리 에러로 실행 중지되는 경우가 빈번히 발생합니다. 이를 해결하기 위해 매 페이지 확인 시 새로운 webdriver를 구동하는 방법을 사용하였습니다.

북마크
공유하기
신고하기