기본적인 웹 스크래핑으로 데이터를 수집해보고 분석하는 과정을 파악하고, 웹 스크래핑 기초, selenium / BeautifulSoup, 키워드 분석, wordcluod를 살펴보겠습니다.
웹스크래핑 기초
데이터 가져오기
selenium
-> 직접 웹 페이지를 방문하여 요소 수집, 동적 웹 스크래핑 가능합니다. BeautifulSoup -> HTML 파싱만으로 간단하고 빠른 수집, 정적 웹 스크래핑에 적합합니다.
selenium, BeautifulSoup 결합 웹 스크래핑
selenium으로 동적 웹 요소 조회, BeautifulSoup으로 조회된 요소 빠르게 데이터화합니다.
예시 사이트 리뷰, 댓글, 좋아요, 아이디 등 데이터 특징별 요소 추출하여 df 생성하고, 생성된 df로 워드 클라우드 생성, 불용어 설정 후 워드 클라우드 키워드 분석 및 인사이트 도출 실습합니다.
페이지소스 가져와서 분석해보기
코랩에 맞는 linux 버전 크롬 드라이버를 설치합니다.
Selenium 옵션을 설정하고 service 객체로 크롬드라이버로 경로 지정한 후 스트리밍 순위 페이지를 가져와서 Selenium으로 웹페이지 열면 cookie_accept를 클릭하고 더보기를 클릭한 수 페이지소스를 가져옵니다. 영화제목과 개봉일을 추출하고 평론가와 관객점수를 추출하고 df변환 후 csv를 저장하고 영화포스터를 저장합니다.
영화 콘텐츠의 순위를 확인한 후 리뷰 더보기를 클릭합니다. 리뷰 작성자와 날짜, 평점, 리뷰 내용을 추출하고 평균 평점과 평점 중앙값을 추출합니다.
긍, 부정 리뷰를 분석하고 4~5점 평균 글자수와 1~2점 평균글자수를 분석합니다. 리뷰 길이별 분포와 별점 별 리뷰 글자수를 분석합니다. 긍,부정 분류를 한 후 리뷰키워드 분석을 하고 기본 불용어를 지정합니다. 상위빈도 20개 키워드를 확인한 후 주요키워드를 수집합니다. 그룹을 정의한 후 함수로 지정하여 다양하게 분석합니다. 그룹을 정의하고 불용어를 설정하여 그룹별로 분석합니다. 전처리, 평균 길이, 단어 분리, 빈도 계산하여 막대그래프로 표시해 봅니다.
실습과제
스크래핑 하고싶은 콘텐츠의 리뷰 정보를 최대한 수집
가장 많이 등장한 키워드 추출
콘텐츠의 스토리, 장르가 어떤 키워드 중심인지 파악
감성어, 인물, 단어 등 특징별로 키워드 분류
OTT 홍보 전략 목적으로 데이터 분석
데이터 분석 결과 기반 전략 수립 (e.g.) 긍정 키워드를 조합한 홍보전략, 부정 키워드 감지 시스템 등
마치며
처음 웹스크래핑을 해보면서 데이터 리터러시에 대해 더 실무적으로 알아볼 수 있었고 스크래핑하고 싶은 콘텐츠를 정보를 수집한 후 키워드 도출을 통해서 사업의 페인포인트를 파악해 볼 수 있는 시간이었습니다.
• df.isnull().sum(): 결측치를 전부 조회 isnull()한 뒤, 총 합 sum()을 조회하는 함수의 조합
• df.duplicated().sum(): 중복된 행을 조회하는 함수, 만약 중복된 행이 있다면 drop_duplites()로 중복행들을 제거합니다.
• df.nunique(): 각 칼럼이 가지고 있는 고유값의 수, 칼럼 자체가 고유한 특징을 가지고 있다면 학습 데이터에서는 삭제 시킵니다. •df.value_counts(): 각 칼럼이 가지고 있는 값들의 개수를 나타내고 전부 고유값인 칼럼의 경우 모든 행이 나타나게 됩니다.
matplotlib 맛보기- 박스 플롯(이상치탐지)
탐지된 이상치는 제거 대상일까?
컬럼별 상관관계 시각화
GROUP BY 시각화
Groupby는 실제 분석 툴에서도 기본이 되는 기능입니다. 칼럼이 될 그룹을 정하고, 해당하는 행의 값들을 불러옵니다.
개수, 평균, 합계등 다양한 집계 함수를 활용하여 다각적 분석이 가능합니다.
마치며
데이터의 종류와 데이터셋 실습을 해보면서 데이터의 기초에 대해 알아볼 수 있는 시간이었습니다.