[python] KBO 기록실 크롤링 - 1
정말 오랜만에 Python 코딩.
데이터 분석 관련해서 토이 프로젝트를 진행하고 싶은데, 마침 또 야구 재밌게 보는 중이라... 일단 데이터 가져오기부터.
재료는 pandas / request / beautifulsoup
pandas는 다들 알거고,
처음에 주제를 정했을 때 이것저것 구글링을 해봤는데 웹에서 가져오는 건 request를 통해 하길래 가져와봤다.
beautifulsoup도 이번 기회에 함 써보려 한다.
(혼자 하려다가 https://dovah.tistory.com/25?category=830150 이 분 글을 보고 따라해보고 있다.)
크롤링할 페이지는 다음과 같다.
https://www.koreabaseball.com/Record/Player/HitterBasic/Basic1.aspx
KBO 홈페이지
KBO, 한국야구위원회, 프로야구, KBO 리그, 퓨처스리그, 프로야구순위, 프로야구 일정
www.koreabaseball.com
05.11 기준 잠깐 보자면
엥 문성주? 누구야 이거
와 97년생... 10라 출신인데 자세한 건 더 봐야겠지만, 성적이 완전 터졌는데?
꼴쥐, 헬쥐라고 하지만 쏠쏠한 유망주가 참 자주 나온다니까 ㅠ
탈쥐 효과 선수들까지 생각하면 스카우트팀이 참 괜찮은 거 같다는 생각이 많이 든다.
암튼 타자/투수/수비/주루 데이터 별 기록 페이지 모두를 가져오려 한다.
처음엔 다 해보려 했는데, ㅎㅎ; 일단 첫번째 페이지부터 해보려고 한다.
캡처가 잘못되었는데 데이터는 div 안에 record_result에 있다.
이렇게 해서 긁어올 곳을 찾고.. (Ctrl + Shift + C 를 통해 더 쉽게 확인가능!)
이런 식으로 아까 만들어 놓은 for문 안에 계속 긁어올 수 있도록 한다.
데이터로 가져와서 가공할거니까 (pandas '해줘') requests.get( )로 가져온다.
~~.get(~~).text는 text 형태로 가져온다.
bs로 가공하기 쉽게 파싱해서 가져올 수 있다. (html.parser)
크롤링 같은 거 할 때나 raw 데이터 가져올 때 파싱 쪽이 참 문제였는데,
이런 의미에서 이번에 처음 써보는 beautifulsoup는 꽤 강력한 친구인거 같다.
그리고 가져온 html text에서 아까 찾아놓은 div의 record_result를 넣어준다.
일단 이렇게 하면 데이터를 긁어올 순 있다.
다음엔 pd로 합쳐주고 가공을 해줘야한다.