크롤링이라고 하기 민망한 수준이지만..ㅎㅎ
간단하게 판매량이 어떤지 혹은 주식 종목이나 단순 데이터를 쌓을 때는 도움될 듯해서 정리한다.
구글 스프레스시트에서 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로 범위를 불러오기 때문에 셀을 잘 비워놔야 한다.
→ 시트 지정을 안해주면 첫번째 시트 기준으로 크롤링한다.
대단한건 아니지만 뭔가 좀 있어보인달까..? 기획자로서 어느정도 차별서있게 내세울 수 있는 간단한 기능이니 알차게 사용해봐야지 🧑🏻💻