[go] 태그 추출

일반적으로 HTML에서 태그를 추출하면 웹 스크래핑(웹 크롤링) 및 데이터 분석에 유용한 정보를 얻을 수 있습니다. Go 언어를 사용하여 HTML에서 태그를 추출하는 방법을 알아보겠습니다.

HTML 파싱

HTML에서 태그를 추출하기 위해서는 먼저 HTML을 파싱해야 합니다. Go 언어에서는 golang.org/x/net/html 라이브러리를 사용하여 HTML을 파싱할 수 있습니다. 다음은 HTML을 파싱하여 태그를 추출하는 간단한 예제 코드입니다.

package main

import (
	"fmt"
	"golang.org/x/net/html"
	"strings"
)

func main() {
	htmlStr := `<html><body><h1>Title</h1><p>Paragraph</p></body></html>`

	doc, err := html.Parse(strings.NewReader(htmlStr))
	if err != nil {
		fmt.Println("Error parsing HTML:", err)
		return
	}

	var extractTags func(*html.Node)
	extractTags = func(n *html.Node) {
		if n.Type == html.ElementNode {
			fmt.Println("Tag:", n.Data)
		}
		for c := n.FirstChild; c != nil; c = c.NextSibling {
			extractTags(c)
		}
	}

	extractTags(doc)
}

위의 예제 코드는 HTML 문자열에서 태그를 추출하여 출력합니다.

태그 추출

태그를 추출하는 가장 간단한 방법은 golang.org/x/net/html 라이브러리를 사용하여 HTML을 파싱하고 원하는 태그를 찾는 것입니다. 예를 들어, 모든 링크 태그를 추출하려면 다음과 같이 할 수 있습니다.

var extractLinks func(*html.Node)
extractLinks = func(n *html.Node) {
	if n.Type == html.ElementNode && n.Data == "a" {
		for _, attr := range n.Attr {
			if attr.Key == "href" {
				fmt.Println("Link:", attr.Val)
			}
		}
	}
	for c := n.FirstChild; c != nil; c = c.NextSibling {
		extractLinks(c)
	}
}

extractLinks(doc)

위의 코드는 HTML에서 모든 링크 태그(<a>)를 추출하고 링크의 href 속성 값을 출력합니다.

태그를 추출하는 방법은 소스 HTML의 구조와 태그에 따라 달라질 수 있으므로 필요에 따라 적절한 방법을 선택하여 구현해야 합니다.

이제, Go 언어를 사용하여 HTML에서 태그를 추출하는 방법을 익혀보았습니다. Happy coding!