IMPORTXML, IMPORTHTML, GOOGLEFINANCE 등은 외부 데이터를 끌어오는 함수입니다. 사실 웹페이지 같은 외부데이터를 끌어오는 건 엑셀에도 2000년 초반부터 있던 기능입니다. DB를 연결하는 경우에도 아직 Bigquery만 지원하는 구글시트보다 엑셀이 훨씬 다양한 형식을 지원하고 있습니다. 그럼에도 불구하고 구글 시트에서 이 기능들을 소개하는 건, 엑셀보다 클릭 한 번이라도 덜 할 수 있기 때문입니다.

IMPORTHTML은 HTML파일에서 LISTTABLE 태그만을 조회해서 가져올 수 있는 함수입니다. IMPORTXML은 XPATH라는 표준 문법을 통해 HTML, XML파일의 내용을 가져오는 함수입니다. 또한 두 함수 모두 정적인 페이지만을 조회할 수 있습니다. Javascript 등을 통해 사용자의 행동에 따라 페이지의 내용이 변경되는 동적 페이지는 조회할 수 없습니다. 구글 시트는 아직 사람 흉내를 내지 못합니다.

왜 내가 이제 와서 구글시트를 해야 합니다_final

XPATH로 크롤링하기-네이버뉴스

HTML 파일의 구조는 대충 아실 거라고 생각합니다. HTML은 웹페이지를 구성하는 형식으로 <a></a> <img> <table> 이런 Tag들로 구성되어 있습니다. XPATH는 이 tag의 구조를 파악해서 필요한 정보의 위치를 찾는 표준 문법입니다.

XPATH에 대한 자세한 사항은 다른 페이지(https://www.w3schools.com/xml/xml_xpath.asp )를 참조하십시오. 매우 자세하고 쓸데없는 설명이 잔뜩 있습니다. IMPORTXML의 구조와 이걸로 뭘 할 수 있는지를 이해하기 위해 간단한 구문만 알아 봅시다.

<aside> 💡 //tag : 하위 계층 모두에서 tag가 존재하는 항목을 가져옴 /tag : 바로 하위의 tag를 찾음 //tag[@속성 = '값'] : 모든 tag 중에서 특정 속성의 값이 "값"인 태그를 가져옴 //*[@id = 'id']: 현재 계층의 모든 하위 계층 중에서 id = 'id'인 항목을 가져옴

</aside>

크롬을 사용하시는 분들은 https://news.naver.com/ 를 열고 F12를 눌러봅니다. 아... 뭔가 개발자가 된 듯한 느낌을 주는 창이 하나 생깁니다. 여기에 Elements라고 되어 있는 탭이 이 웹페이지의 소스 코드를 계층화해서 보여주는 탭입니다. 아까 얘기한 <>로 구분된 태그들이 잔뜩 있습니다. 우리는 여기에서 "경제"뉴스를 가져와 볼 겁니다.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/2c1cd7a5-67c8-4caf-afe7-7d2029c135d3/Untitled.png

개발자 콘솔(네. 이름이 그렇습니다.)의 왼쪽 위를 보면 아래와 같은 아이콘이 있습니다. 클릭합니다.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/d1a4f03b-85a1-4373-8c69-ae30ad052c0c/Untitled.png

이 아이콘을 누르면 실제 웹페이지의 Element들이 어떤 코드인지 찾아줍니다. 우리가 원하는 경제면 의 기사 리스트가 선택이 되도록 잘 조절해서 클릭을 해줍니다.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/0f7baebc-0f05-4329-af75-fb1c3f964685/Untitled.png

저 내용이 들어가있는 부분은 아래 그림과 같은 태그라고 표시가 됩니다. 태그 왼쪽의 삼각형 화살표를 눌러서 내용을 더 탐색해 봅시다.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/354d1a0b-db07-40e9-b151-a7f539b68b1e/Untitled.png