본문 바로가기

컴퓨터 활용/구글스프레드시트 응용

온라인 쇼핑몰 상품 가격 감시 & 알리미@ 구글 스프레드 시트 구현

인터넷 쇼핑몰 및 가격비교사이트에서 최저가 상품이 출현했을 때 감시가만 지정하면 자동으로 통보해주는 구글 스프레드 시트 입니다.  개인적으로 상품권이나 자주 구매한 상품이 있는데 수시로 가격이 변동이 되는데 최저가로 사기 위해서 매일 들어가서 보는 것이 귀찮아 만들었습니다. 

가격비교사이트(다나와, 에누리, 네이버쇼핑가격비교,11번가 가격비교)는 기본으로 지원하고  상품페이지에서 가격을 지정하여 가져올 수 있다면 어떤 사이트든지 가능합니다.( 브라우저 소스보기에서 데이터가 나오면 100% 가능)
티몬, 지마켓, 11 번가등에서 개별 상품도 가격이 자주 변한다면 가능합니다.

 ※ 에누리, 다나와 자체적으로 가격감시 기능이 있으나 앱을 설치를 해야 하고 앱에서 알림창으로 광고가 나와서 귀찮아 깔았다 바로 지웠습니다. 

사용방법

에누리, 다나와, 네이버가격비고, 티몬, 지마켓,11번가는 기본적으로 구현되어 있으므로 상품명과 감시가를 지정하여 그대로 사용하거나 행을 복사하여 마지막행에 붙여넣기 한 후 정보(상품명,정보제공처,감시가)만 변경하면 됩니다..
상품목록시트에서는 D열과 G 열은 수식으로 되어 있으며  H 열은 상품의 주소 페이지를 입력하면 됩니다.

위 그림과 같이 C열에 감시가를 지정해 놓고 이제 해당 가격 아래로 가격이 떨어지면 자동으로 통보를 받기 위해서는 스케줄러에 스크립트를 등록해 줘야 합니다.

D 열의 수식은

=hyperlink(H2,importxml(H2,VLOOKUP(B2,'코드'!A:C,3,false)))


구글 스프레드시트의 IMPORTXML 함수를 이용하여 가져 옵니다. VLOOKUP 함수는 B열에 있는 정보제공처의 Full XPath 문자열을 가져옵니다. hyperlink 는 직접 접속 할 수 있도록 한 것이고 최종으로 다음 수식으로 완성되게 됩니다. 상품의 가격이 반환 되게 됩니다.

=importxml(" https://www.enuri.com/detail.jsp?modelno=101748140 ",
"/html/body/div[3]/div[2]/div[5]/div[5]/div/div[3]/div[1]/div/div[2]/div[1]/div[2]/div/div[1]/span/em")


스프레드시트 접속 및 복사하기

https://docs.google.com/spreadsheets/d/1plCiUH1HNmwiOFIQl8BBS-toAV1_wIeGTc8WIoyxap4/edit?usp=sharing

시트를 사용하려면 구글 계정이 있어야 합니다.  시트 복사하기
파일 메뉴에서 사본 만들기를 이용하거나 시트 복사를 실행하여 개인 구글 드라이브에 복사하여 사용하면 됩니다.

1. 메뉴의 확장 프로그램에서 Apps Script 실행
Code.gs 파일에 있는 giftCert() 함수가 주기적으로 실행하여 최저가 출현 시 메일로 통보해 주는 기능을 하는 구글 앱스 스크립트입니다.



2. 트리거(예약된 작업)에 등록하기

1) 방법 1 : 왼쪽 시계 모양을 선택 후 좌측 하단에 트리거 추가
이벤트 소스에 시간 기반, 시간유형 일단위 -> 시간 선택 


2) 방법 2 : 

사용자 메뉴에서 예약된 작업 등록  메뉴에 등록 시켰습니다. 
registerTrigger() 함수를 실행시켜서 등록
상단 메뉴에서 실행할 함수 registerTrigger를 선택 후 실행

 


복사 후 권한 얻기(승인해 주기)

계정을 선택 후 Google에서 확인하지 않은 앱 화면에 나오면 선택을 눌러 최저가 메일 통보로 이동(안전하지 않음) 선택해서 최종 화면에서 승인을 눌러 줘야 합니다.

 

기타 사이트 추가

코드시트에 없는 신규 사이트를 입력한 경우 9행에 새 데이터를 입력한 경우 지원 여부에 미지원이라고 나옵니다.
데이터 입력은 제품명 등 정보를 입력 후 바로 위 행의 D, G 열의 수식을 복사하여 붙여 넣으면 됩니다.  

이런 경우 코드 시트에 신규로 등록을 시켜줘야 하는데 몇 가지 정보가 필요합니다.
1. 상품 페이지의 사이트 이름
2. 주소
3. 가격이 있는 부분의 full Xpath 문자열.

위에서 "11번가" 가 새로 만든 것인데 위와 같이 정보를 등록해주고 C 열에 복사한 full xPath 주소를 등록해 주면 됩니다. 사이트 URL은 웹사이트 호스트 이름을 적어주면 되겠습니다.

상품 가격 부분의 full XPath 구하기

크롬 브라우저의 F11을 누르면 좌측에 창이 열리면서 다음과 같은 화면이 됩니다. 화살표를 누르고 가격 문자로 마우스를 가져가서 찍으면 우측 소스에 상세 부분에서 마우스 오른쪽 버튼을 누른 후 Copy → Copy full XPath 선택

 

정보 설정하기

상품 목록 시트에서 행을 복사하거나 정보를 입력 후 D 열의 수식을 복사한 후 상품명, Code 시트에 등록된 정보 제공처, 감시가를 수정(입력) 하면 됩니다. 

매일 오전 9시에 스크립트가 실행 되면서 상품가격이 감시가 밑으로 떨어지면 본인의 메일로 다음과 같이 알림이 올 것입니다.

 

구현 설명

 

상품 가격 감시 & 메일 통보 받기 구현 설명 @구글 스프레드 시트

가격비교 사이트나 온라인 쇼핑몰에서 구매를 원하는 상품의 가격을 스프레드 시트에 지정하면 그 가격 밑으로 하락 했을 때 메일로 통보해주는 스프레드시트를 만들었습니다. 저번 포스팅에

richardshin.tistory.com