본문 바로가기
Programming/google 스프래드시트

[구글스프레드] 웹사이트 정보가져오기 (importxml)

by 느리게 걷는 즐거움 2021. 12. 25.
728x90
반응형

웹사이트 정보가져오기 (importxml)

구글스프레드 시트에서 웹사이트 정보를 가져와서 데이터 처리를 해보고 싶은 경우가 종종 있습니다. 예를 들어 "지금 국고채 3년물 금리를 이용해서 데이터를 처리하고 싶다"처럼 외부 웹페이지에서 업데이트되는 정보를 이용하여 데이터를 처리하고 싶은 경우 사용가능한 함수 입니다.

 

importxml()

XML, HTML, CSV, TSV, RSS 및 Atom XML 피드를 포함한 다양한 구조화된 데이터로부터 데이터를 가져옵니다.

 

 

▷ 함수 구문

importxml(URL, xpath_검색어, 언어)

 

▷ 파라메터

1. URL

: 가져올 데이터가 있는 웹페이지 주소입니다.

 

2. xpath_검색어

: xpath는 웹페이지를 구성하는 DOM객체의 구성요소의 위치를 지정하는 표현방식입니다. 

html페이지에서 가져오고 싶은 데이터의 위치를 표현하는 방식으로 생각하면 될 것 같습니다.

 

3. 언어

: 정보를 가져올 때 사용할 언어를 의미합니다. 입력하지 않을 경우 웹페이지의 언어를 사용합니다.

 

▷ 사용 예제

데이터를 가져올 웹페이지의 주소를 확인합니다. 저는 naver 증권 웹페이지에서 S&P500지수 값을 가져오도록 importxml()을 구성하겠습니다. 정보를 가져오기 전에 미리 알아두어야할 점이 있습니다. 이렇게 웹에서 특정 정보를 가져오는 것을 웹크롤링이라고 합니다.

웹크롤링을 지나치게 자주 많이 수행하면 해당 웹페이지의 동작에 큰 문제가 될 수 있습니다. 그래서 웹크롤링이 가능여부를 웹페이지의 robot.txt파일에서 알려줍니다. 웹크롤링 전에 한번 확인해보시는 것이 좋을 것 같습니다.

 

네이버 금융의 해외증시 정보는 (https://finance.naver.com/world/) 링크에서 확인이 가능합니다. 해당 웹페이지로 이동해보면 가져올 정보인 S&P500 지수가 있는것을 확인할 수 있습니다.

 

첫번째 입력정보로 URL을 아래와 같이 입력하고 S&P500 지수정보의 위치를 표현하기 위한 xpath 정보를 확인합니다.

xpath정보를 확인하기 위해서 크롬의 xpath 검색기능을 사용합니다.

스프레드시트 URL xpath_검색어
"https://finance.naver.com/world/"  

크롬으로 위의 웹페이지에 접속 후 <F12>버튼을 눌르면 아래 그림의 우측과 같이 창이 생깁니다. 여기서 원하는 정보의 xpath검색어를 확인하기 위해 화살표 모양을 선택하고 S&P지수가 표시된 "4,725.79"를 선택합니다. 값을 선택하니 HTML 소스의 해당 위치로 이동한 것을 알 수 있습니다. 

우측 창의 <string>4,725.79></string>으로 커서가 이동한 것이 보입니다. 이 위치에서 마우스 우측버튼을 누르고 <Copy> - <Copy full XPath>를 선택하여 xpath 검색어를 복사합니다. 선택하면 클립보드로 복사된 상태이니 구글스프레드 시트에 붙여넣기를 해봅니다.

 

스프레드시트 URL xpath_검색어
"https://finance.naver.com/world/" "/html/body/div[3]/div[2]/div[2]/div[4]/table/tbody/tr[1]/td[2]/span"

URL과 xpath_검색어를 넣어서 importxml함수를 사용합니다. 웹페이지의 S&P500 지수 정보를 정상적으로 가져온 것을 확인할 수 있습니다.

728x90
반응형