[go] Go 언어로 웹 크롤링하기 위한 헤더(User-Agent 등) 설정 방법

Go 언어는 강력한 기능을 제공하여 웹 크롤링과 스크래핑 작업을 간단하게 처리할 수 있습니다. 그러나 웹 사이트에서 방문자에게 다른 응답을 제공하기 위해 User-Agent 헤더를 사용하는 경우, 이를 설정해야합니다.

User-Agent란?

User-Agent는 웹 브라우저나 봇과 같은 클라이언트 애플리케이션을 식별하는데 사용되는 헤더입니다. 웹 사이트는 User-Agent 값을 확인하고 해당 클라이언트에게 다른 응답을 제공할 수 있습니다.

Go 언어에서 User-Agent 설정하기

Go 언어에서는 다음과 같은 방법으로 User-Agent 헤더를 설정할 수 있습니다.

package main

import (
    "fmt"
    "net/http"
)

func main() {
    url := "https://example.com"
    client := &http.Client{}

    req, err := http.NewRequest("GET", url, nil)
    if err != nil {
        fmt.Println("Error creating request:", err)
        return
    }

    // User-Agent 헤더 설정
    req.Header.Set("User-Agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36")

    res, err := client.Do(req)
    if err != nil {
        fmt.Println("Error making request:", err)
        return
    }

    defer res.Body.Close()

    // 응답 확인
    fmt.Println("Response Status:", res.Status)
}

위 예제에서는 net/http 패키지를 사용하여 HTTP 클라이언트를 생성하고, http.NewRequest 함수를 사용하여 GET 요청을 만듭니다. 그리고 req.Header.Set 메서드를 사용하여 User-Agent 헤더를 설정합니다.

User-Agent 값을 원하는 브라우저 또는 봇의 User-Agent 값으로 설정하면 됩니다. 위 예제에서는 Chrome의 User-Agent 값을 설정했습니다.

참고 자료