EXCEL 다루기

[ 응용 ] 파워쿼리(PowerQuery)를 사용하여 여러 URL 웹 데이터 크롤링 : 네이버 주식

카루루1007 2024. 10. 6. 18:37
728x90
반응형

지난 블로그에서 파워쿼리(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의 끝 부분 숫자만 바뀝니다.

 

728x90

 여러 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의 모든 주가 정보가 표시됩니다.

여기를 방문하시면 더 많은 엑셀 관련 자료를 확인할 수 있습니다.

엑셀 공부하기
VBA 공부하기

728x90
반응형