티스토리 뷰
처음에 fow와 opgg중 어느 사이트에서 크롤링을 할지 고민하다가
fow는 예전 기록을 많이 공개하지 않아서 고민없이 op.gg로 선택했습니다!
하지만 opgg도 5개월 전 까지의 데이터만 공개 해주는 것을 나중에 알게되고
눈물을 감추며 약 절반의 데이터밖에 수집하지 못했다는 슬픈 이야기..😥
아무튼 저의 수집 및 전처리 계획은 이러했답니다
1. Page unfolding & Crawling
2. Data processing
1. Page unfolding & Crawling
OP.GG는 플레이어 검색 시 기본적으로 한 페이지에 20개의 전적을 보여주며
더 보기를 클릭할 때 마다 20개의 전적이 추가적으로 보여집니다
더 보기 쯤이야 20번 정도만 클릭 해줘도 400개의 데이터를 볼 수 있으니깐 할만한데..
상세보기는 몇 백번을 클릭해야 한다는 점! 필요한 대부분의 데이터는 상세보기에 들어있었기에
상세보기를 클릭 해주는건 필수! 하지만 이걸 절대 수작업으로 할 수는 없는 노릇이죠..!
이 작업을 위해 크롤링에 많이 사용하는 웹앱 테스트용 프레임워크인 셀레니움을 사용하였습니다
그렇게 각각의 버튼의 태그를 먼저 탐색한 뒤에, 크롤링을 위한 클릭 함수를 짜줍니다
주의할 점이 웹 드라이버가 브라우저를 자동 제어하기 때문에 인터넷 환경에 따라 렉이 걸리는 경우가 있어요
때문에 수행 마다 몇 초 씩 타임 슬립을 설정해준 다음 펼치기 작업을 실행합니다
카페 인터넷이 불안정해서 초고속 인터넷을 지닌 알바 매장에서 스윽😋
그렇게 셀레니움이 무사히 10분간 페이지를 펼쳐주고 전부 펼쳐진 페이지를 재빠르게 HTML 파일로 저장! 좋았어.
2. Data processing
이제 Beautifulsoup을 이용해 크롤링한 raw data에서 필요한 변수들을 데이터프레임으로 슥슥 이쁘게 넣어줘야 합니다
각 변수들의 태그 path 경로를 확인하고, 시리즈로 담아줍니다
변수들마다 가진 특징에 따라 전처리 해주면서 확인하는 것은 필수!
다시하기도 있고 와드같은 경우에는 설치도 안하고 끝나버린 게임도 있었기 때문에
저러한 경우들을 고려해서 생각하는게 되게 골치였던 것 같아요
그렇게 필요한 변수들을 길이에 맞게 확인해가며 완성된 소중한 데이터 프레임! 👏
게임 수준의 표준화를 위해 노말을 제외한 솔랭기록만 따로 뽑아줍니다
그리고 신드라는 미드 챔피언이니깐 미드 게임만 따로 뽑아줘야죠!
그렇게 해서 모은 최종 표본은 총 398개!
다음 편에서는 완성된 데이터를 가지고 탐색적 데이터 분석의 과정을 다뤄보도록 하겠습니다🙋♂️
'Data Science > Individual' 카테고리의 다른 글
[Individual] Arah의 롤 전적 분석 일기 完 - 승률 예측 알고리즘 모델링 & 평점 알리미 챗봇 만들기 (8) | 2020.01.24 |
---|---|
[Individual] Arah의 롤 전적 분석 일기 #4 - 탐색적 데이터 분석 (0) | 2020.01.24 |
[Individual] Arah의 롤 전적 분석 일기 #2 - 개요 (0) | 2020.01.21 |
[Individual] Arah의 롤 전적 분석 일기 #1 - 발단 (0) | 2020.01.21 |
[Individual] 농림축산식품부 공공데이터 공모전 (0) | 2019.09.09 |