지난 블로그에서 파워쿼리(PowerQurey)를 사용하여
단일 웹 페이지의 데이터를 가져오는 방법을 살펴보았습니다.
※ 파워쿼리(PowerQuery)로 웹 데이터 크롤링하기 : 네이버 주식
이번에는 파워쿼리(PowerQuery)를 사용하여
여러 웹 페이지의 데이터를 모두 가지고 오는 방법을 알아보겠습니다.
지난 블로그를 참고하시면 더 쉽게 보실 수 있습니다.
준비하기
먼저 페이지의 URL을 확인합니다.
네이머 증권의 국내 증시 중 시가총액 메뉴의 URL 구성은
페이지별로 다음과 같이 구성되어 있습니다.
https://finance.naver.com/sise/sise_market_sum.naver?&page=1
https://finance.naver.com/sise/sise_market_sum.naver?&page=2
https://finance.naver.com/sise/sise_market_sum.naver?&page=3
https://finance.naver.com/sise/sise_market_sum.naver?&page=4
https://finance.naver.com/sise/sise_market_sum.naver?&page=46
현재는 총 46페이지로 구성되어 있고
각 페이지마다 URL의 끝 부분 숫자만 바뀝니다.
여러 URL 주소 데이터 수집하기
먼저 엑셀을 실행하고 아래 그림과 같이 자료를 입력해 줍니다.
URL이라는 제목을 넣고
그 아래 12개의 URL 주소를 값으로 넣었습니다.
그 이상의 데이터도 가능하나 각자의 사용환경에 따라 너무 많은 데이터를 불러오게 되면
오류가 발생할 수 있으니 우선 적은 양으로 테스트해보시길 바랍니다.
그다음 아래 그림과 같이
삽입 → 표를 누른 후
머리글 포함에 체크하고 확인을 눌러줍니다.
표가 만들어 지고 나면
해당 표를 마우스 우클릭하여 표/범위에서 데이터 가져오기를 눌러줍니다.
그러면 아래 그림과 같이 파워쿼리(PowerQuery)가 실행됩니다.
그다음 파워쿼리(PowerQuery)의
홈 → 새 원본 → 기타 원본 → 웹을 눌러줍니다.
이후 아래 그림과 같이 첫 번째 페이지의 URL을 입력하고
확인을 눌러줍니다.
그 다음 코스피를 선택하고 확인을 눌러줍니다.
그러면 파워쿼리(PowerQuery) 창이 다음과 같이 바뀌게 됩니다.
이제 매개 변수를 추가해 주겠습니다.
홈 → 매개 변수 관리 → 새 매개변수를 눌러줍니다.
아래 그림과 같은 창이 나타납니다.
이름은 자신이 사용하기 좋은 이름을 지정하고,
유형은 URL 주소가 텍스트이므로 텍스트로 지정을 합니다.
현재값은 첫 번째 페이지 URL이므로 첫번째 페이지 URL을 넣어줍니다.
https://finance.naver.com/sise/sise_market_sum.naver?&page=1
그다음 확인을 눌러줍니다.
그 다음 아래 그림과 같이 하나씩 선택합니다.
먼저 좌측 빨간색 네모와 같이 코스피 쿼리를 선택하고
우측 빨간색 원 안의 원본의 설정을 눌러줍니다.
그러면 파란색 네모와 같은 창이 나타납니다.
아래 그림과 같이
먼저 고급을 선택하고
빨간색 원 안의 아래 방향의 삼각형을 눌러
매개 변수를 선택합니다.
그러면 자동으로 아래 그림과 같이
매개변수에 방금 만들었던 URLPara가 추가됩니다.
이제 확인을 해보겠습니다.
URLPara를 선택하고
현재 값의 URL의 맨 뒤 숫자를 2로 바꾸어 보겠습니다.
그 다음 코스피를 선택하고 우측에서 변경된 유형을 선택합니다.
그러면 화면이 두 번째 페이지 자료로 자동으로 바뀌게 됩니다.
그다음 코스피를 선택한 다음(굳이 코스피가 아니어도 됩니다.)
마우스 우클릭 후 함수 만들기를 눌러줍니다.
함수 이름은 자신이 원하는 이름으로 지정해 주시면 됩니다.
함수 이름을 지정하고 확인을 눌러줍니다.
그다음 아까 URL 주소를 모아 놓은 표1을 선택하고
열 추가 → 사용자 지정 함수 호출을 눌러줍니다.
그 다음 함수 쿼리에서 방금 만들었던 getData 함수를 선택합니다.
그러면 나머지 것들은 자동으로 입력됩니다.
그리고 확인을 눌러줍니다.
데이터 모양 편집하기
이제 다 되었습니다.
확인을 누르면 아래 그림과 같이 화면이 나타나게 됩니다.
빨간색 원안의 아이콘을 눌러줍니다.
그 다음 원하는 자료에 체크하고
확인을 눌러줍니다.
그러면 아래 그림과 같이 해당 URL에 있던 데이터를 불러올 수 있습니다.
이제 지난 블로그를 참고하여 원하는 모양으로 편집을 합니다.
저는 맨 앞의 URL이 있는 행을 지우고
빈 열을 모두 삭제한 후
제목을 바꾸어주었습니다.
그다음
홈 → 닫기 및 로드 → 닫기 및 다음으로 로드를 눌러줍니다.
그다음 새 워크시트를 선택하고 확인을 눌러줍니다.
이제 표 1이라는 시트가 생기고 해당 URL의 모든 주가 정보가 표시됩니다.
여기를 방문하시면 더 많은 엑셀 관련 자료를 확인할 수 있습니다.
'EXCEL 다루기' 카테고리의 다른 글
[ 함수 ] 엑셀(Excel) Indirect 함수 기본 개념 (0) | 2024.10.08 |
---|---|
[ 함수 ] 엑셀(Excel) Transpose 함수 : 가로 데이터를 세로로, 세로 데이터를 가로로 바꾸기 (0) | 2024.10.07 |
[ 응용 ] 파워쿼리(PowerQuery)로 웹 데이터 크롤링하기 : 네이버 주식 (2) | 2024.10.04 |
[ 응용 ] 엑셀 두 데이터 비교하기, 누락된 값 찾기 (1) | 2024.09.26 |
[ 응용 ] 한글 문서 엑셀로 변환하기, 한글 표 엑셀로 옮기기 (1) | 2024.09.26 |