[go] net/http 패키지를 사용한 웹 크롤링 및 스크래핑
개요
웹 크롤링과 스크래핑은 인터넷에서 정보를 수집하는 중요한 데이터 수집 기술입니다. Go 언어에서는 net/http 패키지를 사용하여 웹 리소스를 가져오고 데이터를 추출할 수 있습니다.
웹 크롤링
웹 크롤링은 웹사이트를 탐색하여 웹 페이지의 링크나 내용을 수집하는 작업입니다. Go 언어에서는 net/http 패키지를 사용하여 웹 페이지를 요청하고 응답을 받아올 수 있습니다. 아래는 간단한 예제 코드입니다.
package main
import (
"fmt"
"net/http"
)
func main() {
resp, err := http.Get("https://example.com")
if err != nil {
fmt.Println("Error:", err)
return
}
defer resp.Body.Close()
// 응답 바디를 사용하여 크롤링 작업을 수행할 수 있습니다.
}
웹 스크래핑
웹 스크래핑은 웹 페이지에서 필요한 정보를 추출하는 작업입니다. Go 언어에서는 net/http와 함께 golang.org/x/net/html 패키지를 사용하여 HTML 문서를 파싱하고 원하는 데이터를 추출할 수 있습니다.
package main
import (
"fmt"
"io"
"golang.org/x/net/html"
"net/http"
)
func main() {
resp, err := http.Get("https://example.com")
if err != nil {
fmt.Println("Error:", err)
return
}
defer resp.Body.Close()
tokenizer := html.NewTokenizer(resp.Body)
for {
tokenType := tokenizer.Next()
if tokenType == html.ErrorToken {
err := tokenizer.Err()
if err == io.EOF {
break
}
fmt.Println("Error:", err)
}
// 토큰 분석을 통해 원하는 데이터를 추출할 수 있습니다.
}
}
위의 예제 코드는 net/http 패키지와 함께 golang.org/x/net/html을 사용하여 웹 페이지에서 데이터를 스크래핑하는 방법을 보여줍니다.
결론
Go 언어의 net/http 패키지를 활용하여 웹 크롤링과 스크래핑을 할 수 있습니다. 데이터 수집에 대한 관련 법률을 준수하고 합법적인 방법으로만 사용해야 합니다.