항해99 2일차 미니프로젝트

홍당무·2022년 11월 15일
1

일기

오전 8시경 일어나 출석체크를 하고 어제 못 다한 미니 프로젝트를 하기 위해 pycharm을 켰다. 우리 조의 토이 프로젝트 주제는 'OTT별 실시간 인기순위' 를 웹 페이지 한 화면에 보여주는 것이었고, 내 역할은 메인 페이지였다. 넷플릭스와 웨이브, 디즈니 플러스 이렇게 세 곳의 인기순위를 보여주기위해 각 플랫폼의 OpenApi를 찾아 구글링에 전념했다. 다행히 전 날 html의 구상은 다 끝내놓아 순조롭게 다음 단계를 밟나 싶었다.

그러나 각 OTT플랫폼들은 OpenApi를 제공하지 않았고 궁여지책으로 구글링해 찾은 곳이 TMDB라는 곳이었다. 회원가입 후 고유 Api key를 받아 각 플랫폼의 넘버를 입력하고 고유 Api key를 url에 입력해 Api에 접근하는 방식이었다. 그렇게 한참을 만들던 중에 TMDB가 제공하는 Api는 페이지 별로 1개의 창을 열어 Api를 불러와야 한다는 것을 알게 되었다.

넷플릭스는 180장 웨이브는 250여장이었고 오늘 이 것에 매달린 시간은 12시간 정도였다. 그렇게 오후 11시경 실시간 크롤링으로 정보를 받아와야겠다고 생각을 한뒤 bs4를 활용해 파이썬으로 크롤링을 시작했다. 그러나 아무리 하려고 해도 크롤링이 잘 안됐다. 그렇게 3시간을 고군분투 하던 중 같은 반 React를 선택하신 귀인께서 지나가면서 '어 파이썬 하시네요. 크롤링하시게요?' 라는 말과 함께 많은 도움을 주셨다. 덕분에 외롭지 않았다.(해결은 안됨)

문제는 '정적 웹크롤링'에는 bs4를 활용할 수 있으나 '동적 웹크롤링' 에는 bs4가 아닌 selenium이라는 패키지와 webdriver가 필요하다는 것을 알게되었고 즉시 셀레니움을 설치했다. 그러나 웹드라이버는 에러가 뜨면서 설치가 안되고 그 때부터 에러코드의 연속이었다.

웹드라이버 설치 안됨 > '적절한 경로에서 설치해라' > 에러 코드 구글링 > 명령프롬프트와 파이썬쉘로 구글링에서 얻은 명령어로 설치 > 파이썬 버전이 낮음 > 버전 업그레이드 > 드라이버 버전이 낮음 > 드라이버 설치안됨.. 이렇듯 길고 긴 싸움 중 지나가던 다른 분께서 '그거 그냥 구글웹드라이버 설치해서 하면 된다고 하던데' 라는 말씀을 해주셔서 구글 웹드라이버를 설치하고 파이썬에서 driver = webdriver.Chrome(경로)로 웹드라이버 패키지를 사용할 수 있게 되었다. 약 2시간만에 이룬 쾌거였다.

그러나 정작 크롤링에서 에러가 또 발생했다. 세션에 예외가 있다고 하는데 구글링을 해도 이렇다할 정보가 없고 환경변수 에러라는 것만 알게되었다. 해결책을 찾던 중 이미 4시 반이 되어 TIL을 적기위해 벨로그에 방문했고 남은건 내일의 내가 해야할 몫이다.

profile
공부하는 백엔드 개발자

0개의 댓글