[TIL] 스프레드 시트로 크롤링을 해보자 🔎

Nowwyun·2023년 5월 19일
0

Today I Learn

목록 보기
11/15
post-thumbnail

크롤링이라고 하기 민망한 수준이지만..ㅎㅎ
간단하게 판매량이 어떤지 혹은 주식 종목이나 단순 데이터를 쌓을 때는 도움될 듯해서 정리한다.


URL, Xpath

구글 스프레스시트에서 Importxml 함수를 이용하기 위해서 URL, Xpath가 필요하다.
알라딘 기준으로 책 "인스파이어드"의 판매량을 긁어와보자
URL은 인스파이어드 현재 보이는 페이지의 URL을 따오면 된다.

개발자도구 - 요소선택 - 오른쪽 마우스 - 복사 - Xpath 복사


이렇게 긁어온 URL과 Xpath를 importxml을 사용해서 긁어올 수 있다.

importxml(URL,Xpath)

App Script를 연동해서 자동으로 기록하는 체계를 만들어보자

확장프로그램 - 편집기 - 함수작성 - 트리거

편집기(함수작성)

function myFunction() {

var sheet = SpreadsheetApp.getActiveSheet(); //내 스프레드시트를 불러옴

// 클롤링한 데이터를 가져와 변수에 저장함
var aladin = sheet.getRange('b2').getValues();
var interpark = sheet.getRange('b3').getValue();
var yes24 = sheet.getRange('c5').getValues();

// 날짜 순서대로 aladin, interpark, yes24 값을 한줄에 출력
// 출력해야 되는 위치를 지정해 주어야 합니다. 

//데이터가 입력되어 있는 범위 불러오기
var datarange = sheet.getDataRange();
var numRows = datarange.getNumRows()+1;

//날짜 생성하기
var dateToday= Utilities.formatDate(new Date(),"GMT+9","yyyy-MM-dd");

//시트에 기록하기
sheet.getRange(numRows,1).setValue(dateToday);
sheet.getRange(numRows,2).setValue(aladin);
sheet.getRange(numRows,3).setValue(interpark);
sheet.getRange(numRows,4).setValue(yes24); 
}

트리거

위에서 작성한 myfunction을 활용해서 언제 함수를 실행할 지 정해서 시간단위로 하루에 한번씩 데이터를 긁어올 수 있게 설정한다.
→ 실제로 크롤링할 때, 해외 시간을 고려해서 설정해야 한다.
→ 자동으로 입력되는데 getDataRange로 범위를 불러오기 때문에 셀을 잘 비워놔야 한다.
→ 시트 지정을 안해주면 첫번째 시트 기준으로 크롤링한다.


대단한건 아니지만 뭔가 좀 있어보인달까..? 기획자로서 어느정도 차별서있게 내세울 수 있는 간단한 기능이니 알차게 사용해봐야지 🧑🏻‍💻

profile
근본있는 서비스 기획자를 꿈꿉니다 🧑🏻‍💻

0개의 댓글