본문 바로가기

시각화/tableau 굿모닝 굿애프터눈

Google SpreadSheet로 웹데이터 크롤링하기: Wikipedia 데이터 불러오기

위키피디아에서 미국 메이저리그 야구장 리스트를 크롤링하여 Tableau로 불러오는 실습을 할 것이다. (태블로 굿모닝 굿애프터눈 도서 참조)

https://en.wikipedia.org/wiki/List_of_current_Major_League_Baseball_stadiums

 

List of current Major League Baseball stadiums - Wikipedia

Wikimedia list article There are 30 stadiums in use by Major League Baseball (MLB) teams. The oldest ballpark is Fenway Park in Boston, home of the Boston Red Sox, which opened in 1912. The newest stadium is Globe Life Field in Arlington, Texas, home of th

en.wikipedia.org


(1) 위키피디아 데이터 가져오기

위키피디아의 테이블의 데이터를 구글 스프레드시트에 가져올 것이다. 구글 스프레드시트의 A1 셀에 아래 명령어를 입력하면 시트에 구장 정보가 크롤링되어 입력된다. 

=IMPORTHTML("https://en.wikipedia.org/wiki/List_of_current_Major_League_Baseball_stadiums","table",2)

IMPORTHTML 함수는 (URL,검색어,색인,locale의 매개변수를 가진다.

원하는 url 페이지에서 table 형태의 데이터를 가져와야 하고, 위키피디아 페이지에 총 3개의 테이블이 있는데, 구장 데이터는 두번째 테이블에 있으므로 색인에 2를 넣었다.

 

구글 스프레드시트에는 구장의 이름부터 지붕의 타입까지 나와있는데, 여기에 구장의 위도, 경도에 대한 정보도 추가할 것이다. Geocode by Awesome Table은 스프레드 시트 안의 주소에서 위도, 경도를 자동으로 불러와주는 기능이다.

새로운 열에 Ballpark라는 필드명을 입력하고, 구장 정보를 Name 필드에서 긁어와서 아래에 붙인다.

그 다음 열에 Geocode by Awesome Table을 실행하하면 Latitude와 Longitude 열이 자동으로 생성되어 위치정보를 확인할 수 있게 된다. 

 

 

(2) Tableau Desktop

Tableau desktop에서 서버에 연결>google 스프레드시트를 열어 데이터를 불러온다.

 

 

위키피디아 데이터를 그대로 불러와서 Team 필드에서 [ ] 안에 불필요한 정보가 있다. 이를 사용자 지정 분할>구분 기호 사용 '['을 선택하여 '['을 기준으로 필드를 분할했다. 

 

분할된 필드명을 'Team '으로 설정했다. 불필요한 필드인 Team(분할 전 필드), Name, Image 필드는 숨김 처리 했다. 

 

 

시트로 넘어가서 Latitude와 Longitude를 더블클릭하여 시트에 올리면 각 위도와 경도의 평균값이 지도 위에 점 하나로 표시된다.

 

 

우리는 모든 구장 정보에 대한 위경도 정보를 알고 싶기 때문에 Ballpark를 레이블 위에 올렸다. 미국 지도에 구장에 대한 정보가 성공적으로 표시되었다. 

 

 

지도의 지역 정보가 한국어로 디폴트로 표시된다. 이를 영어로 바꾸기 위해 상단바의 파일>통합문서로캘>영어(미국)로 설정한다.