[go] 웹 페이지의 링크 추출하기
이 기술 블로그에서는 Go 언어를 사용하여 웹 페이지에서 링크를 추출하는 방법에 대해 알아보겠습니다.
1. HTML 페이지에서 링크 추출하기
Go 언어에서는 net/http
패키지를 사용하여 웹 페이지의 HTML을 가져와 파싱할 수 있습니다. HTML을 파싱하려면 golang.org/x/net/html
패키지를 사용할 수 있습니다.
다음은 Go 언어를 사용하여 HTML 페이지의 링크를 추출하는 간단한 예제입니다.
package main
import (
"fmt"
"golang.org/x/net/html"
"net/http"
)
func main() {
resp, err := http.Get("https://example.com")
if err != nil {
panic(err)
}
defer resp.Body.Close()
doc, err := html.Parse(resp.Body)
if err != nil {
panic(err)
}
var links []string
var findLinks func(*html.Node)
findLinks = func(n *html.Node) {
if n.Type == html.ElementNode && n.Data == "a" {
for _, a := range n.Attr {
if a.Key == "href" {
links = append(links, a.Val)
}
}
}
for c := n.FirstChild; c != nil; c = c.NextSibling {
findLinks(c)
}
}
findLinks(doc)
for _, link := range links {
fmt.Println(link)
}
}
위의 예제는 http.get
을 사용하여 웹 페이지를 가져오고, html.Parse
를 사용하여 HTML을 파싱한 뒤, 모든 링크를 추출하여 출력하는 방법을 보여줍니다.
2. 결론
Go 언어를 사용하여 웹 페이지에서 링크를 추출하는 것은 비교적 간단합니다. HTTP 요청을 보내고 HTML을 파싱하여 원하는 정보를 추출하는 방법을 숙지하면 다양한 웹 스크래핑 및 자동화 작업에 활용할 수 있습니다.
더 많은 정보를 원하신다면 다음 참고 자료를 확인해보세요.