[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!