[go] 웹 스크래핑을 이용한 여행 정보 수집하기
여행을 준비할 때, 여러 웹사이트에서 정보를 수집하는 것은 번거로운 일입니다. 이를 자동화하는 한 가지 방법은 웹 스크래핑입니다. 웹 스크래핑을 통해 웹사이트에서 여행 관련 정보를 수집하여 자신만의 여행 가이드를 만들 수 있습니다. 본 블로그는 Go 언어를 사용하여 웹 스크래핑을 통해 여행 정보를 수집하는 방법을 설명합니다.
필요한 라이브러리 설치하기
가장 먼저, 웹 스크래핑에 사용할 라이브러리를 설치해야 합니다. Go 언어의 경우, goquery
와 같은 서드 파티 라이브러리를 사용하여 웹 스크래핑을 수행할 수 있습니다. 아래는 Go 모듈을 사용하여 라이브러리를 설치하는 예시입니다.
go get github.com/PuerkitoBio/goquery
웹 페이지에서 정보 추출하기
다음으로, 웹 페이지에서 정보를 추출하는 방법을 알아보겠습니다. goquery
라이브러리를 사용하여 HTML을 파싱하고, 원하는 정보를 추출할 수 있습니다. 아래 예시는 웹 페이지에서 제목과 가격 정보를 추출하는 방법을 보여줍니다.
package main
import (
"fmt"
"log"
"github.com/PuerkitoBio/goquery"
)
func main() {
doc, err := goquery.NewDocument("https://example.com")
if err != nil {
log.Fatal(err)
}
doc.Find("div.product").Each(func(i int, s *goquery.Selection) {
title := s.Find("h2").Text()
price := s.Find("span.price").Text()
fmt.Printf("Item %d: %s - %s\n", i, title, price)
})
}
결과 저장하기
마지막으로, 추출한 정보를 저장하는 방법을 알아봅시다. Go 언어를 사용하여 웹 스크래핑한 결과를 파일에 저장할 수 있습니다. 아래는 웹 스크래핑한 결과를 CSV 파일로 저장하는 예시입니다.
func writeToFile(data []string) error {
file, err := os.Create("result.csv")
if err != nil {
return err
}
defer file.Close()
writer := csv.NewWriter(file)
defer writer.Flush()
for _, record := range data {
err := writer.Write([]string{record})
if err != nil {
return err
}
}
return nil
}
위의 예시 코드를 통해 Go 언어를 사용하여 웹 스크래핑을 수행하고, 결과를 저장하는 방법을 알아보았습니다. 이를 응용하여 자신만의 여행 정보를 수집하고 저장할 수 있습니다.
더 많은 정보는 goquery 공식 문서에서 확인할 수 있습니다.