[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 값을 설정했습니다.