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

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

## **1. IMPORTXML 함수 활용**

웹페이지에서 정적 HTML 데이터를 XPath를 이용해 가져올 수 있습니다.

```javascript
=IMPORTXML("웹페이지 URL", "XPath 표현식")
```

**예제**

네이버 금융 금 시세 데이터를 가져오기:

```javascript
=IMPORTXML("https://finance.naver.com/marketindex/", "//span[@class='value']")
```

### **장점**

•간단하게 데이터를 가져올 수 있음.

•구글 시트 내부에서 바로 사용 가능.

### **단점**

•JavaScript로 동적으로 로드되는 데이터는 가져올 수 없음.

•XPath를 이해해야 함.

## **2. IMPORTHTML 함수 활용**

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

### **사용법**

```javascript
=IMPORTHTML("웹페이지 URL", "table" 또는 "list", 테이블/목록 번호)
```

**예제**

위키백과의 테이블 데이터를 가져오기:

```javascript
=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 데이터를 불러옵니다.

### **사용법**

```javascript
=IMPORTDATA("데이터 URL")
```

**예제**

Google Finance에서 제공하는 CSV 파일 데이터를 불러오기:

```javascript
=IMPORTDATA("http://www.example.com/data.csv")
```

### **장점**

•CSV, TSV와 같은 파일 형식 데이터를 다룰 때 유용.

•대량의 데이터를 빠르게 불러올 수 있음.

**단점**

•데이터 형식이 CSV나 TSV로 제한됨.

## **4. Google Apps Script 활용**

JavaScript 기반으로 HTML에서 동적 데이터를 파싱하여 구글 시트에 삽입할 수 있습니다.

**사용법**

1.  **Apps Script 열기**:

•구글 시트에서 확장 프로그램 > Apps Script를 클릭.

2. **스크립트 작성**:

예: 특정 웹페이지에서 데이터를 가져오는 코드.

```javascript
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("데이터를 가져오지 못했습니다.");
  }
}
```

1. **  스크립트 실행**:

•Apps Script에서 작성한 함수(예: fetchData)를 실행합니다.

•구글 시트에 데이터가 업데이트됩니다.

### **장점**

•동적 HTML 데이터를 처리할 수 있음.

•복잡한 데이터 파싱이 가능.

### **단점**

•JavaScript와 정규식 사용에 대한 지식이 필요.

•유지보수가 필요할 수 있음.

## **5. 외부 API 활용**

웹페이지 대신 API가 제공된다면 데이터를 더 안정적으로 가져올 수 있습니다.

**사용법**

1.    **Apps Script 작성**:

```javascript
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);
}
```

1. **  스크립트 실행**:

•위 함수를 실행하면 API 데이터를 구글 시트에 반영합니다.

### **장점**

•데이터를 안정적으로 가져올 수 있음.

•최신 정보를 동적으로 업데이트 가능.

### **단점**

•API 키 또는 인증이 필요할 수 있음.

**비교 요약**

![https://prod-files-secure.s3.us-west-2.amazonaws.com/3537bd41-6461-4a2e-8951-71817ebd2fc1/a4466e78-71c9-4184-aa1e-ecea010d9e6a/image.png](https://prod-files-secure.s3.us-west-2.amazonaws.com/3537bd41-6461-4a2e-8951-71817ebd2fc1/a4466e78-71c9-4184-aa1e-ecea010d9e6a/image.png)

**추천**

•**정적 데이터**: IMPORTXML이나 IMPORTHTML 사용.

•**동적 데이터**: Apps Script 활용.

•**API 제공 데이터**: 외부 API를 사용하는 방식이 가장 안정적.

다른 여러 방법을 시도 해봤지만 구글 시트를 활용한 방법이 노코드로 어렵지 않게 크롤링 하는 방법 같습니다

For the site tree, see the [root Markdown](https://chulhee.com/.md).
