[스포츠 데이터] 역대 축구 A매치 득점 데이터 수집 및 시각화

2021년 축구 국가대표 A매치 경기가 모두 마무리 되었습니다. 2021년까지 역대 남자 축구 국가대표 A팀의 데이터를 수집 및 시각화 해보겠습니다. 웹 페이지에서 특정한 영역에 있는 데이터를 xpath를 활용해서 스크래핑해 보겠습니다. 

xpath란?

XML Path Language로 XML 문서에서 특정 위치에 있는 값을 찾을 때(경로 지정) 사용하는 언어입니다. 

상위 폴더에서 하위 폴더로 구조화된 요소들을 찾아보겠습니다. 여기에서는 구글 시트에서 IMPORTXML 함수를 활용해서 필요한 xpath 영역을 가져오는 실습을 하겠습니다. 

데이터는 축구협회(KFA)의 데이터를 수집하겠습니다. 

  1. 구글 시트 (Google Sheets)에서 새로운 스프레드시트를 오픈합니다.

  1. 새로운 시트의 이름을 ‘역대 대한민국 축구 A대표팀 득점 순위’로 입력합니다. 

  1. 하단의 시트 이름을 ‘남자 A대표팀’으로 변경합니다.

  1. (다음부터는 가급적 IE 대신 크롬이나 파이어폭스 또는 웨일 브라우저 등을 사용하실 것을 추천 드립니다.) 여기에서 KFA 홈페이지의 ‘아카이브’ > 기록실 > 각종 기록실 페이지로 이동합니다. 이 곳의 URL은 ‘https://www.kfa.or.kr/archive/etc_record.php’입니다.

  1. 여기 메뉴에서 스크로을 아래로 옮긴 다음 ‘남자A매치(개인)_A매치 개인 최다 득점 순위(2021.11.17 기준)’ 클릭합니다. 그러면 1위 차범근부터 역대 득점 기준 순위가 테이블 형태로 나오는 것을 볼 수 있습니다. 
이미지 출처 : KFA 홈페이지
  1. ‘차범근’에 우클릭 후 맨 아래에 ‘검사’를 선택합니다. 그럼 여러분들의 브라우저 우측(또는 하단)에 개발자 도구 화면이 나타나는데, 이 때 좌측 상단에 있는 마우스 포인터로 스크래핑하려는 영역에 마우스 오버하면 개발자 도구에 해당 부분이 음영 처리되는 것을 볼 수 있습니다. 여기에서는 각 선수별 Row 기준 데이터를 불러오기 위해서는 <tr> 영역내 ‘1위’, ‘차범근’, ’58, ‘1976 올림픽 예선 2득점 포함. 2000년 FIFA 승인 기록은 55골’까지 모두 수집해보겠습니다. 
개발자 도구에는 다양한 정보를 수집할 수 있습니다.
  1. ‘1위 차범근’ 영역을 가져오기 위해 구글 시트의 ‘남자 A대표팀’ 시트의 A2 셀에 다음과 같이 입력합니다.
    =importxml("https://www.kfa.or.kr/archive/etc_record.php","//tr[14]/td/table/tbody/tr[1]")

  1. 그리고 A1 셀은 ‘순위’ B1셀은 ‘선수’, C1셀은 ‘득점’, D1셀은 ‘비고’로 씁니다. 결과는 다음과 같습니다. 

  1. 1위뿐만 아니라 전체 영역의 데이터를 모두 수집하고 싶다면 A2 셀을 다음과 같이 변경합니다.
    =importxml("https://www.kfa.or.kr/archive/etc_record.php","//tr[14]/td/table/tbody/tr[*]")

  1. 간단한 시각화 결과물은 다음과 같습니다. 축구공 이미지를 형상화해서 표현해봤습니다.카타르 월드컵 최종예선 이라크 전에서 골을 기록한 손흥민 선수는 A매치 30번째 골을 기록하며 역대 6위이자, 역대 Top 10 선수 중 유일한 현역 선수입니다. 

참고로 xpath를 활용한 데이터 수집 같은 경우에는 해당 웹 페이지를 운영하는 곳에서 페이지 개편 등이 있는 경우 이후에는 동일하게 실습이 안될 수도 있으니, 해당 영역을 어떤 식으로 스크래핑할 수 있을지 다양한 사례를 테스트 해보시기 바랍니다. 

데이터 수집 및 시각화 어렵지 않습니다!

원본은 여기서 볼 수 있습니다.

필자는 데이터 시각화 전문 기업 BigxData에서 데이터 시각적 분석 전문가로 활동하면서, 데이터에 스토리텔링을 입히는 일을 주로 하고 있습니다.   

저서로는 ‘데이터 시각적 분석 태블로로 끝내기’, ‘태블로 굿모닝 굿애프터눈’이 있습니다.
다양한 데이터 시각적 분석 예시는 저자가 운영하는 유튜브 채널 (http://bit.ly/YT_MDV)에서 만날 수 있습니다.

강승일

viztabviz@gmail.com
기자의 다른 기사보기
저작권자 © Tech42 - Tech Journalism by AI 테크42 무단전재 및 재배포 금지

관련 기사

근무 유형 바꾸기 전, 인사담당자가 꼭 확인해야 할 3가지

AI 요약 “일단 이번 달부터 수요일은 재택으로 돌리죠.” 슬랙 공지 한 줄이나 회의 자리의 구두 약속만으로 근무 방식을 바꾸는 스타트업이...

선택적 근로시간제 운영 시 초과 근무 수당은 어떤 기준으로 얼마나 지급하나

AI 요약 근태 정산 마감일, 인사담당자가 선택적 근로시간제 대상자의 근태 이력을 열어보면 가장 먼저 확인해야 할 것은 “이번 정산기간에 법정...

퇴사자 미사용 연차 수당, 며칠분을 통상임금으로 계산해 언제 지급하나

이 글에서는 퇴사자 미사용 연차 수당을 잔여 일수 확정 → 1일분 통상임금 산정 → 지급 기한 순서로 정리해요. 입사일 기준과 회계연도 기준에서 잔여 일수가 어떻게 달라지는지, 식대와 고정수당을 통상임금에 포함해야 하는지 등 다양한 상황을 대입해서 짚어볼게요.

회계연도 기준 연차를 초과 사용하고 퇴사했다면, 급여에서 공제할 수 있을까

이 글은 퇴사 연차 정산에서 미사용 연차 수당을 지급해야 하는 경우와 회계연도 기준으로 선부여한 연차의 초과 사용분을 공제할 수 있는 경우를 함께 정리합니다. 회계연도 기준으로 미리 준 연차를 입사일 기준으로 다시 계산했을 때 초과 사용분이 생겨도, 취업규칙에 재정산·공제 조항이 있고 근로자의 사전 서면 동의가 있어야 급여나 퇴직금에서 공제할 수 있습니다. ZUZU는 입사일 기준과 회계연도 기준 정산 결과를 나란히 비교하고 사용 촉진 이력・공제 조항・14일 내 지급 일정을 퇴사 전에 점검할 기준을 제시합니다.