Selenium과 BeautifulSoup을 이용한 논문데이터 크롤링 - 크롬 드라이버 문제

boingboing·2020년 12월 19일
1

논문 데이터 정보를 수집해야하는 업무를 하게 되었다.

연구실 홈페이지 업데이트하면서 기존에 데이터화되어있지 않은 논문 데이터(html 하드코딩 되어있던)을 데이터화해야 하는데..

간단하게 홈페이지에 올라가는 데이터 200개 정도라 귀찮지 않을 거라 생각해서 별로 귀찮지 않을거라 생각했는데 예상외로 하나하나 구글에 검색해서 너무 귀찮았다.

그래서 올해 2월쯤에 크롤링 프로젝트 할 때 코드를 다시 찾아보게 되었다. 파이썬도 안 익숙한데 크롤링을 하게 되어 어떻게든 기한 내에 완료하긴 한 것 같은데..
10개월 후에 보니 기억이 하나도 나지 않았다..-ㅁ-

셀레니움과 BeautifulSoup 관련 내용들을 다시 찾아보고있다.

셀레니움에서 크롬브라우저를 직접 띄우기 때문에 크롬 드라이버가 필요하다.

일단 10개월만에 다시 열어보니 셀레니움 드라이버가 실행이 되지 않았다..

    driver = webdriver.Chrome()

기존 코드에서 크롬 드라이버를 호출한 부분에서 에러가 나지 않았는데 다시 실행하니 에러가 났다.

에러로그

session not created: This version of ChromeDriver only supports Chrome version 81

def init_driver():    
    global driver
    driver = webdriver.Chrome(ChromeDriverManager().install())
    print('OK')
    
  

내가 현재 브라우저에서 사용하는 크롬 드라이버와 크롤링 파일에서 사용하는 크롬 드라이버 버전이 안 맞음.

해결 방법

  • 크롬 드라이버를 사용하는게 아니라 크롬 드라이버 매니저를 사용하면 드라이버 버전 문제가 해결된다.

pip install webdriver-manager

터미널에서 웹드라이버 설치 후

from webdriver_manager.chrome import ChromeDriverManager

드라이버 매니저 패키지의 크롬 모듈의 ChromeDriverManager 함수를 임포트시킴

driver = webdriver.Chrome(ChromeDriverManager().install())

크롬드라이버 경로를 매니저가 직접 설치할 수 있도록 지정해주면 문제 해결.

0개의 댓글