티스토리 뷰

개요

우연히 유튜브에서 Google sheet의 importxml 함수를 이용한 상품 가격정보를 확인하는 영상을 보았다.  

영상을 올린 유튜버는 shopee 판매자로 국내의 최저가 상품을 shoee를 통해서 동남아시아에 판매를 하고 있는데 상품의 가격이 오르면 손해를 보고 팔아야 하기때문에 Google sheet의 importxml을 이용하여 최저가 상품의 가격을 체크하며, 이를 소개하는 내용이였다. 

 

구글시트를 단순히 Data 저장소 또는 공유하는 수단으로 사용하였던터라 스크래핑이 가능하다면 Python 스크래핑을 대체할 수 있지 않을까? 한번 테스트 해보기로 했다.

 

구글시트에서 Importxml 사용법

importxml의 문법

= importxml(url, xpath_query)

 

1. url

  • 가지고 올 정보가 포함된 url을 입력하면 된다.
  • 프로토콜(https:// 또는 http://)을 포함하여 입력하여야 한다. 
  • 따움표로 url을 묶어 주거나(ex. "https://www.naver.com/") url이 포함된 셀을 참조해야 한다.

2. xpath_query

  • xpath(xml path language)는 xml 문서의  요소나 속성에 접근을 쉽게 하기 위해 경로를 지정하는 언어이다.
  • xpath에 대한 자세한 사항은 아래 문서 참고

       - https://www.w3schools.com/xml/xpath_intro.asp

 

XPath Tutorial

W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

www.w3schools.com

  • 웹페이지에서 특정 몇개의 데이터만 필요하기 때문에 xpath에 대해서는 심도 있게 볼 필요가 없다.
  • 컴퓨터가 쉽게 정보를 가지고 올 수 있도록 데이터의 주소를 만들어준다고 생각하면 된다.

xpath_query 만드는 방법

  • 웹페이지에 개발자도구(ctrl+shift+I 또는 F12)을 open한다.
  • 개발자도구 창의 위쪽 element(요소) 왼쪽 커서 클릭 → 웹페이지의 추출하고자 하는 데이터 클릭 → 개발자도구 창에서 해당 데이터의 소스코드가 나타남 → 해당코드에서 커서를 둔 상태에서 마우스 오른쪽 클릭 복사 > XPath 복사 또는 XPath 클릭 > xpath 복사 완료

 

구글시트에서 Importxml 테스트 결과

약 20개의 웹페이지 url과 xpath를 입력하고 테스트를 해보았다. Google sheet의 Importxml 테스트 결과는 다음과 같다.

  • 정적 웹페이지는 스크래핑 가능하나 동적 웹페이지는 작동이 되지 않는다. #N/A 를 반환한다.
  • 속도가 느리다. 인터넷 환경의 차이일수도 있겠지만, 체감하는 속도가 느리다. 데이터를 갱신시 바로 값을 가지고 오지 못한다. 

Google sheet의 Importxml 함수를 이용하여 복잡한 코딩없이 스크래핑이 가능하지 않을까라는 기대를 해보았다. 간단한 스크래핑 및 정적 웹페이지는 손쉽게 사용 가능하나, 복잡하거나 많은 데이터를 다룰때나 특히 동적 웹페이지를 스크래핑 할 경우에는 사용이 불가하다.

 

결론 : Google sheet의 Importxml 함수는 Python 을 대체하지 못한다.