[웹 크롤링] 메타코드 강의 후기 - "4강 관광 상품 리뷰 크롤링 및 분석 프로젝트(2)"
페이지네이션을 위한 페이지 탐색
F12 개발자 모드에 진입하여 페이지 넘기기 기능에 대한 클래스를 찾아봅니다.
확인 결과, <div class="paginate">로 적혀있음을 확인할 수 있습니다.
(By.CLASS_NAME, "pagenate")를 작성합니다.
이 요소를 찾기까지 기다리도록 selenium.webdriver.support로부터 expected_conditions를 가져옵니다.
마지막 번호에서 넘어가는 기능 구현
10 단위로 페이지 버튼의 변경이 일어납니다.
따라서 조건 문제 page_num % 10 != 0 으로 설정을 하였습니다.
10의 배수가 되었을 때는 {page_num+1}에 따라 선택된 버튼이 아닌,
화살표를 클릭할 수 있도록 XPATH를 설정합니다.
마지막 페이지인 경우는 except에 설정했습니다.
XPATH를 찾는 과정에서의 오류
실제 코드를 실행해보니 오류가 발생하였습니다.
확인 결과 위에서 By.CLASS_NAME으로 'pagenate'을 찾을 때 문제가 생김을 확인할 수 있습니다.
따라서, CLASS 이름이 아닌, XPATH를 통하여 탐색을 하도록 변경해줍니다.
F12 개발자 모드에 진입하여 XPATH를 Copy하고 driver.find_element(By.XPATH, '') 형식에 맞게 넣어줍니다.
수집된 데이터에 대한 분석, 시각화 - 라이브러리 불러오기
데이터 분석을 위한 기본 라이브러리들을 불러오는 과정입니다.
Pandas, Matplotlib, Seaborn을 우선 불러올 것이며,
한글 폰트를 읽을 수 있도록 설정합니다.
강의는 MAC OS 환경에서 진행되어 family = 'AppleGothic'으로 되어있으며, 윈도우의 경우는 'Malgun Gothic을 입력합니다.
데이터 분석 - 카테고리별 리뷰 수 계산
카테고리 리뷰 수에 대한 분석을 먼저 진행합니다.
데이터 프레임 중에서 'category' 컬럼을 선택합니다.
value_counts() 함수를 사용하면 각 항목별로 값들이 몇 개씩 들어있는지 확인할 수 있습니다.
가족여행, 아동동반 항목의 숫자가 눈에 띄는 모습을 보입니다.
데이터 시각화
위에서 생성한 value_counts() 함수의 결과를 시각화합니다.
드래그한 함수들을 통하여 그래프를 꾸밀 수 있습니다.
옵션들을 정리하면, title은 "카테고리별 리뷰 수", xlabel은 "카테고리", ylabel은 "리뷰 수"로 지정했습니다.
x 축의 값들을 보다 보기 편하도록 rotation 값을 주었습니다.
'Crawling - 메타코드' 카테고리의 다른 글
[웹 크롤링] 메타코드 강의 후기 - "4강 관광 상품 리뷰 크롤링 및 분석 프로젝트(3), 완강 후기" (0) | 2024.04.28 |
---|---|
[웹 크롤링] 메타코드 강의 후기 - "4강 관광 상품 리뷰 크롤링 및 분석 프로젝트(1)" (0) | 2024.04.20 |
[웹 크롤링] 메타코드 강의 후기 - "3강 예매 가능한 기차표 찾기 프로젝트" (0) | 2024.04.16 |
메타코드 강의 후기_2강 : 뉴스 크롤링 자동화 프로젝트 - "크롤링이 안될 때", "Selenium, WebDriver 이용 크롤링" (0) | 2024.04.13 |
메타코드 - [ 효율적 뉴스 정보 수집 ] 메타코드 강의 후기 ( 2강 : 뉴스 크롤링 자동화 프로젝트 ) (1) | 2024.04.12 |