로그인
Blog

구글시트 이용 웹사이트 크롤링 방법 4가지

황철희
카테고리
비어 있음
요사이 특히 AI 때문에 더 정보수집이 많이 필요한거 같다. 특별한 기술은 안이지만 개발자에 부탁하기도 애매하고 귀찮고 불편한 작업이긴 하다 .그런데 구글시트와 gpt를 이용해서 웹사이트 크롤링 하는 방법은 개발을 알지 못해도 쉽게 할 수 있어서 많은 이용하는 편이다. 이번 글은 구글 시트와 GPT를 이용해서 웹사이트를 크롤링 하는 대표적인 방법 4가지와 그 장점을 정리해 봅니다.

1. IMPORTXML 함수 활용

웹페이지에서 정적 HTML 데이터를 XPath를 이용해 가져올 수 있습니다.
=IMPORTXML("웹페이지 URL", "XPath 표현식")
예제
네이버 금융 금 시세 데이터를 가져오기:
=IMPORTXML("https://finance.naver.com/marketindex/", "//span[@class='value']")

장점

•간단하게 데이터를 가져올 수 있음.
•구글 시트 내부에서 바로 사용 가능.

단점

•JavaScript로 동적으로 로드되는 데이터는 가져올 수 없음.
•XPath를 이해해야 함.

2. IMPORTHTML 함수 활용

HTML 테이블 또는 목록 데이터를 가져올 수 있습니다.

사용법

=IMPORTHTML("웹페이지 URL", "table" 또는 "list", 테이블/목록 번호)
예제
위키백과의 테이블 데이터를 가져오기:
=IMPORTHTML("[https://en.wikipedia.org/wiki/List_of_countries_by_population_(United_Nations)](https://en.wikipedia.org/wiki/List_of_countries_by_population_(United_Nations))", "table", 1)

3. IMPORTDATA 함수 활용

CSV 또는 TSV 데이터를 불러옵니다.

사용법

=IMPORTDATA("데이터 URL")
예제
Google Finance에서 제공하는 CSV 파일 데이터를 불러오기:
=IMPORTDATA("http://www.example.com/data.csv")

4. Google Apps Script 활용

JavaScript 기반으로 HTML에서 동적 데이터를 파싱하여 구글 시트에 삽입할 수 있습니다.
사용법
1.
Apps Script 열기:
•구글 시트에서 확장 프로그램 > Apps Script를 클릭.
2.
스크립트 작성:
예: 특정 웹페이지에서 데이터를 가져오는 코드.
function fetchData() {
  const url = "https://m.stock.naver.com/marketindex/metals/M04020000";
  const response = UrlFetchApp.fetch(url);
  const html = response.getContentText();

  // 정규식으로 데이터 추출
  const regex = /<strong class="DetailInfo_price__InDYQ">([\d,]+)<\/strong>/;
  const match = html.match(regex);

  if (match && match[1]) {
    const price = match[1].replace(/,/g, ""); // 쉼표 제거
    const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("금시세") || SpreadsheetApp.getActiveSpreadsheet().insertSheet("금시세");
    sheet.getRange(1, 1).setValue(`금 시세: ${price}`);
  } else {
    Logger.log("데이터를 가져오지 못했습니다.");
  }
}
3.
스크립트 실행:
•Apps Script에서 작성한 함수(예: fetchData)를 실행합니다.
•구글 시트에 데이터가 업데이트됩니다.

장점

•동적 HTML 데이터를 처리할 수 있음.
•복잡한 데이터 파싱이 가능.

단점

•JavaScript와 정규식 사용에 대한 지식이 필요.
•유지보수가 필요할 수 있음.

5. 외부 API 활용

웹페이지 대신 API가 제공된다면 데이터를 더 안정적으로 가져올 수 있습니다.
사용법
1.
Apps Script 작성:
function fetchAPIData() {
  const url = "https://api.example.com/data";
  const options = {
    method: "get",
    headers: {
      "Authorization": "Bearer YOUR_API_KEY"
    }
  };
  const response = UrlFetchApp.fetch(url, options);
  const data = JSON.parse(response.getContentText());
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("API 데이터") || SpreadsheetApp.getActiveSpreadsheet().insertSheet("API 데이터");

  sheet.getRange(1, 1).setValue(data.someKey);
}
2.
스크립트 실행:
•위 함수를 실행하면 API 데이터를 구글 시트에 반영합니다.

장점

•데이터를 안정적으로 가져올 수 있음.
•최신 정보를 동적으로 업데이트 가능.

단점

•API 키 또는 인증이 필요할 수 있음.
비교 요약
추천
정적 데이터: IMPORTXML이나 IMPORTHTML 사용.
동적 데이터: Apps Script 활용.
API 제공 데이터: 외부 API를 사용하는 방식이 가장 안정적.
다른 여러 방법을 시도 해봤지만 구글 시트를 활용한 방법이 노코드로 어렵지 않게 크롤링 하는 방법 같습니다
'황철희 홈페이지' 구독하기
사이트를 구독하면 새 포스트 등 최신 업데이트를 알림과 메일로 가장 먼저 받아보실 수 있습니다.
Slashpage에 가입하고 '황철희 홈페이지'을 구독하세요!
구독
👍
© 2024 chulhee.com. All rights reserved. •
hwang@chulhee.com
개인정보 처리방침 | 이용 약관 |
“본 홈페이지의 모든 콘텐츠는 저작권법의 보호를 받습니다. 무단 복제 및 배포를 금지합니다.”