Selenium 활용(2)

Jinny·2021년 7월 5일
1
post-thumbnail

이번 포스팅에서는 Selenium을 활용해서 CGV 영화 리뷰를 크롤링해보겠습니다.

네이버 영화 리뷰와의 차이점


네이버 영화 리뷰 페이지는 url마지막의 page를 변경하여 페이지 간의 이동이 가능하기 때문에 BeautifulSoup으로도 크롤링이 가능합니다.

반면 CGV영화 리뷰는 #뒤의 숫자를 변경해도 페이지가 변경되지 않기 때문에 클릭을 통해서 페이지 간의 이동이 가능합니다. 따라서 Selenium을 사용하여 크롤링을 해야합니다.

한 영화 리뷰 크롤링

우선 하나의 영화에 대한 리뷰를 크롤링해봅시다.
먼저 필요한 Selenium 설정을 해줍니다.

제가 최근 재밌게 본 '크루엘라'영화 리뷰에 대해 영화제목, 작성자, 리뷰, 작성일을 추출해봅시다.
영화 제목은 한 번만 나오니 for문 밖에서 추출해줍니다.


정보를 담을 리스트를 생성하고 page를 돌면서 정보를 추출합니다.
클릭을 통해 page를 이동해야 하기 때문에 아래 쪽에 페이지 바를 추출하고 페이지 번호를 얻어서 클릭합니다.

클릭한 페이지에서 작성자, 리뷰, 작성일을 클래스 명으로 추출하고 각 리스트에 추가시킵니다.

현재 페이지가 10의 배수일 경우 버튼을 클릭해서 다음 10개 페이지를 불러와야 합니다.

마지막으로 추출한 정보들을 데이터 프레임에 담고 리턴합니다.

url에 크루엘라 리뷰 url을 넣어주고 페이지는 12개로 설정하여 함수를 호출해보겠습니다.

한 페이지에 6개의 리뷰가 총 72개의 리뷰가 정상적으로 크롤링 된 것을 확인할 수 있습니다.

리뷰가 마지막 페이지에 도달했을 경우 다음 페이지를 찾지 못해 오류가 발생할 수 있으니 예외처리를 해주어야 합니다. 아래는 전체코드입니다.

profile
AI, 데이터 사이언스 공부

0개의 댓글