[go] 동적 웹 페이지 스크래핑하기
동적 웹 페이지를 스크래핑하는 것은 웹 데이터를 추출하는 중요한 과제입니다.
이 글에서는 Golang을 사용하여 동적 웹 페이지를 스크래핑하는 방법에 대해 살펴보겠습니다.
구성 요소
- HTTP 요청 보내기
- 동적 내용 로드
- 데이터 추출하기
HTTP 요청 보내기
Golang의 내장 패키지 net/http
를 사용하여 웹 페이지에 HTTP GET 요청을 보낼 수 있습니다.
resp, err := http.Get("https://example.com")
if err != nil {
// 오류 처리
}
defer resp.Body.Close()
동적 내용 로드
동적으로 생성된 웹 페이지의 내용을 가져오기 위해서는 chromedp
패키지를 사용할 수 있습니다.
ctxt, cancel := chromedp.NewContext(context.Background())
defer cancel()
var buf []byte
err := chromedp.Run(ctxt, chromedp.Navigate("https://example.com"), chromedp.WaitVisible("body"), chromedp.CaptureScreenshot(&buf))
if err != nil {
// 오류 처리
}
데이터 추출하기
스크래핑한 동적 웹 페이지의 내용을 추출하기 위해, goquery
패키지를 사용할 수 있습니다.
doc, err := goquery.NewDocumentFromReader(strings.NewReader(string(buf)))
if err != nil {
// 오류 처리
}
doc.Find("a").Each(func(i int, s *goquery.Selection) {
// 링크 추출
link, _ := s.Attr("href")
fmt.Println(link)
})
이제 동적 웹 페이지에서 데이터를 추출하는 Golang 프로그램을 작성하는 방법에 대해 알아보았습니다. 동적 웹 페이지 스크래핑은 데이터 수집 및 분석을 위한 중요한 도구로 활용될 수 있습니다.