[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을 파싱하여 원하는 정보를 추출하는 방법을 숙지하면 다양한 웹 스크래핑 및 자동화 작업에 활용할 수 있습니다.

더 많은 정보를 원하신다면 다음 참고 자료를 확인해보세요.