Sign In
Blog

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

황철희
Category
Empty
요사이 특히 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")

장점

•CSV, TSV와 같은 파일 형식 데이터를 다룰 때 유용.
•대량의 데이터를 빠르게 불러올 수 있음.
단점
•데이터 형식이 CSV나 TSV로 제한됨.

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를 사용하는 방식이 가장 안정적.
다른 여러 방법을 시도 해봤지만 구글 시트를 활용한 방법이 노코드로 어렵지 않게 크롤링 하는 방법 같습니다
Subscribe to '황철희 홈페이지'
Subscribe to my site to be the first to receive notifications and emails about the latest updates, including new posts.
Join Slashpage and subscribe to '황철희 홈페이지'!
Subscribe
👍
© 2024 chulhee.com. All rights reserved. •
hwang@chulhee.com
개인정보 처리방침 | 이용 약관 |
“본 홈페이지의 모든 콘텐츠는 저작권법의 보호를 받습니다. 무단 복제 및 배포를 금지합니다.”